Esempio n. 1
0
        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);
            }
        }
Esempio n. 2
0
    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);
    }