MCPcopy Create free account
hub / github.com/PDAL/PDAL / assignment

Method assignment

filters/private/expr/AssignParser.cpp:16–50  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

14}
15
16bool AssignParser::assignment(AssignStatement& expr)
17{
18 if (!match(TokenType::Identifier))
19 {
20 setError("Expected dimension name for assignment.");
21 return false;
22 }
23 expr.identExpr().pushNode(NodePtr(new VarNode(curToken().sval())));
24
25 if (!match(TokenType::Assign))
26 {
27 setError("Expected '=' after dimension name in assignment.");
28 return false;
29 }
30
31 static const std::vector<Token> endTokens
32 {
33 Token(TokenType::Eof),
34 Token(TokenType::Identifier, "WHERE")
35 };
36
37 MathParser parser(lexer(), endTokens);
38 if (!parser.expression(expr.valueExpr()))
39 {
40 setError(parser.error());
41 return false;
42 }
43 if (!parser.checkEnd())
44 {
45 setError("Invalid token '" + peekToken().sval() + "' following valid math expression");
46 return false;
47 }
48
49 return where(expr);
50}
51
52bool AssignParser::where(AssignStatement& expr)
53{

Callers

nothing calls this directly

Calls 6

TokenClass · 0.85
pushNodeMethod · 0.80
svalMethod · 0.80
checkEndMethod · 0.80
expressionMethod · 0.45
errorMethod · 0.45

Tested by

no test coverage detected