static void Main(string[] args) { var sourceCodes = new string[] { @" level { tank{1 2} | tank{3 4} } " }; foreach (var sourceCode in sourceCodes) { var lex = new LexicalAnalyzerLevelCompiler(); lex.SetSourceCode(sourceCode); var tokens = lex.Analyze(); Console.WriteLine(tokens); var parser = new LL1SyntaxParserLevelCompiler(); parser.SetTokenListSource(tokens); var tree = parser.Parse(); Console.WriteLine(tree); var value = tree.GetValue(); Console.WriteLine(value); } }
public static Level[] LoadLevels(string[] levels) { if (levels == null) { levels = LevelLoader.levelsSourceCode; } var result = new Level[levels.Length]; for (int i = 0; i < result.Length; i++) { var lexi = new LexicalAnalyzerLevelCompiler(levels[i]); var tokens = lexi.Analyze(); var parser = new LL1SyntaxParserLevelCompiler(tokens); var tree = parser.Parse(); var value = tree.GetValue(); result[i] = value; } return(result); }