MCPcopy Create free account
hub / github.com/anjo76/angelscript / ParseExpression

Method ParseExpression

sdk/angelscript/source/as_parser.cpp:2176–2200  ·  view source on GitHub ↗

BNF:9: EXPR ::= EXPRTERM (EXPROP EXPRTERM)

Source from the content-addressed store, hash-verified

2174
2175// BNF:9: EXPR ::= EXPRTERM (EXPROP EXPRTERM)*
2176asCScriptNode *asCParser::ParseExpression()
2177{
2178 asCScriptNode *node = CreateNode(snExpression);
2179 if( node == 0 ) return 0;
2180
2181 node->AddChildLast(ParseExprTerm());
2182 if( isSyntaxError ) return node;
2183
2184 for(;;)
2185 {
2186 sToken t;
2187 GetToken(&t);
2188 RewindTo(&t);
2189
2190 if( !IsOperator(t.type) )
2191 return node;
2192
2193 node->AddChildLast(ParseExprOperator());
2194 if( isSyntaxError ) return node;
2195
2196 node->AddChildLast(ParseExprTerm());
2197 if( isSyntaxError ) return node;
2198 }
2199 UNREACHABLE_RETURN;
2200}
2201
2202// BNF:10: EXPRTERM ::= ((TYPE '=')? INITLIST) | (EXPRPREOP* EXPRVALUE EXPRPOSTOP*)
2203asCScriptNode *asCParser::ParseExprTerm()

Callers 1

Calls 1

AddChildLastMethod · 0.80

Tested by

no test coverage detected