1 min read

SoulParser: Specification and Testing Program

SoulParser is a two-class component of SoulFramework for C++. I built it to simulate a parser for XML, but with only one-level depth.It has proven useful to me while using it to save game preferences, or to make files that contain information separated into categories.

Below you will find the SoulParser specification, along with a sample program that will help you create a SouFile using SoulFile specification 0.2.


Lets see an example of a SoulFile using specification 0.2

ScreenResolution= 1280×1024
ColorBits = 32
ScreenType = P1700
PlayerName= Soulstorm Sotiriou
PlayerGenre = male


  • Every SoulFile must include the <SOULFILE PROPERTIES> header in order to include specific informatiokn about the specification used. So far, only one variable must exist under this header. This is the "SoulPropertiesVersion" variable, which currently must have a value of 0.2. If the file under process is of another version, this file will not be processed.
  • You can use comments by writting '//' before each line.
  • On the left side of the equation symbol, there must be no white space.
  • The symbols =,<,> are used by the parser. You can't use them as names of variables or anything else. If you want to do so, you must alter the enum of the SoulParser in SoulParser.cpp.


This is a project originally started to make files with the SoulParser specification 0.1. It is now updated to make files compatible with specification 0.2.

SoulParser is a part of SoulFramework(CPP) and it can be used with ObjC, or C++. I have implemented it into this project to test the usability of the SoulParser, and to find errors that would occur during development. The project version is v.0.5 and is compatible with the SoulFile specifications 0.2. If you don't know what SoulFiles are, read the appropriate read-me (when it becomes available). To use the SoulParser, download the SoulFramework for C++.

Program will ask for a string or a file written with the SoulFile current specification, and will analyse it into a tree structure displaying its contents, It will also create a visual representation of the file's contents. See the screenshot for details.

Get the application here. Application built as Universal Binary.