Beispiel #1
0
        private static PBXElementDict ParseContent(string content)
        {
            TokenList tokens = Lexer.Tokenize(content);
            var       parser = new Parser(tokens);
            TreeAST   ast    = parser.ParseTree();

            return(Serializer.ParseTreeAST(ast, tokens, content));
        }
Beispiel #2
0
        public static PBXElementDict ParseTreeAST(TreeAST ast, TokenList tokens, string text)
        {
            var el = new PBXElementDict();

            foreach (var kv in ast.values)
            {
                PBXElementString key   = ParseIdentifierAST(kv.key, tokens, text);
                PBXElement       value = ParseValueAST(kv.value, tokens, text);
                el[key.value] = value;
            }
            return(el);
        }
Beispiel #3
0
 public TreeAST ParseTree()
 {
     if (Tok() != TokenType.LBrace)
         throw new Exception(GetErrorMsg());
     Inc();
     
     var ast = new TreeAST();
     while (Tok() != TokenType.RBrace && Tok() != TokenType.EOF)
     {
         ast.values.Add(ParseKeyValue());
     }
     SkipIf(TokenType.RBrace);
     return ast;  
 }