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); }
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); }