static string inputText = ""; // change as desired static void Main(string[] args) { if (!useCustomText) { inputText = readFileContents(inputText); } Parse(inputText); Console.WriteLine("********************************************"); List <Chunk> chunks = ChunkHandler.getChunks(); try { Console.WriteLine(chunk.GetChunk("Name").GetStr("Last")); Console.WriteLine(chunk.GetNum("Age")); Console.WriteLine(chunk.GetChunk("Address").GetStr("PostalCode")); Console.WriteLine(chunk.GetChunk("Address").GetNum("Number")); Console.WriteLine(chunk.GetArray("LuckyNumbers").GetStr(0)); /* * Console.WriteLine(chunk.GetStr("Name")); * Console.WriteLine(chunk.GetArray("Games").getStr(1)); * Console.WriteLine(chunk.GetNum("Established")); * Console.WriteLine(chunk.GetChunk("Scores").GetChunk("Players").GetNum("Alice")); * // Console.WriteLine(chunk.FindNum("Alice")); */ } catch (Exception e) { Console.WriteLine(e); } Console.ReadLine(); }
private static void Parse(string allText) { List <char> literals = new List <char>() { '{', '}', '=', ',', '(', ')', '"' }; ChunkHandler.initializeChunkHandler(); Tokenizer.initializeTokenizer(allText, literals); Prog program = new Prog(); program.parse(); chunk = ChunkHandler.getRoot(); }
public override void parse() { ChunkHandler.closeChunk(); }
internal override void handleStatement() { // Case: New "Chunk" if (value.Equals("{")) { ChunkHandler.createChunk(definition); } // Case: String if (value.Equals("\"")) { try { Chunk currentChunk = ChunkHandler.getCurrentChunk(); currentChunk.addToStringMap(definition, Tokenizer.getNext()); } catch { Console.WriteLine("Error: Chunk not found :("); } } // Case: List (paren) if (value.Equals("(")) { int x = ChunkHandler.chunkDepth; Chunk currentChunk = ChunkHandler.getCurrentChunk(); List <object> newList = new List <object>(); while (!Tokenizer.checkToken(")")) { if (!Tokenizer.checkToken(",") && !Tokenizer.checkToken("\"")) { string newString = Tokenizer.getNext(); try { int newVal = Convert.ToInt32(newString); newList.Add(newVal); } catch { newList.Add(newString); } } else { Tokenizer.incrementTokenIndex(); } } currentChunk.addNewListToMap(definition, newList); } // Case: Int else { try { Chunk currentChunk = ChunkHandler.getCurrentChunk(); int newVal = Convert.ToInt32(value); currentChunk.addToIntMap(definition, newVal); } catch { // Console.WriteLine("Error: Not an int"); } } }