Пример #1
0
 protected virtual IPrimaryNode ParsePrimary(IPrimaryParentNode parent, Token token)
 {
     // PARSE: <primary> ::= identifier | <literal> | <block constructor> | ( '(' <expression> ')' )
     if (token is IdentifierToken)
     {
         return(new VariableReferenceleNode(parent, (IdentifierToken)token));
     }
     else if (Parser.IsBlockStartDelimiter(token))
     {
         return(this.ParseBlock(parent, (SpecialCharacterToken)token));
     }
     else if (Parser.IsOpeningParenthesis(token))
     {
         return(this.ParseParenthesizedExpression(parent, (SpecialCharacterToken)token));
     }
     else
     {
         return(this.ParseLiteral(parent, token));
     }
 }