Node _simpleExpression()

in lib/src/parser.dart [81:102]


  Node _simpleExpression() {
    var token = _scanner.next();
    switch (token.type) {
      case TokenType.not:
        var child = _simpleExpression();
        return NotNode(child, token.span.expand(child.span!));

      case TokenType.leftParen:
        var child = _conditional();
        if (!_scanner.scan(TokenType.rightParen)) {
          throw SourceSpanFormatException(
              'Expected ")".', _scanner.peek().span);
        }
        return child;

      case TokenType.identifier:
        return VariableNode((token as IdentifierToken).name, token.span);

      default:
        throw SourceSpanFormatException('Expected expression.', token.span);
    }
  }