Package dtool.ast.expressions

Examples of dtool.ast.expressions.Expression


  }
 
    public Expression parseInfixOperator(final Expression leftExp, final InfixOpType opType) {
      ParseHelper parse = new ParseHelper(assertNotNull(leftExp));
     
      Expression rightExp = null;
     
      consumeLookAhead();
      if(opType == InfixOpType.NOT_IS || opType == InfixOpType.NOT_IN) {
        consumeLookAhead(); // consume second token
      }
     
      if(opType != InfixOpType.MUL) {
        parse.storeError(checkValidAssociativityN(leftExp, opType));
      } else {
        assertTrue(lastLexElement().type == DeeTokens.STAR);
      }
     
      Expression middleExp = null;
     
      parsing: {
        if(opType == InfixOpType.CONDITIONAL) {
          middleExp = nullExpToParseMissing(parseExpression().node);
         
View Full Code Here


      ArrayList<MapArrayLiteralKeyValue> mapElements = null;
     
      boolean firstElement = true;
     
      while(true) {
        Expression exp1;
        Expression exp2 = null;
        ParseHelper exp2parse = null;
       
        exp1 = parseExpression(InfixOpType.SLICE).node;
        if(lookAhead() == DeeTokens.COMMA) {
          exp1 = nullExpToParseMissing(exp1);
View Full Code Here

        // TODO: perhaps we could add a precise check for whether expMixinString
        // was consumed sucessfully or had rule broken
       
        ParseHelper parse = new ParseHelper(expMixinString.getStartPos());
       
        Expression exp = new ParseRule_Expression().
            parseTypeOrExpression_fromUnary(ANY_OPERATOR, expMixinString);
       
        parse.consumeRequired(DeeTokens.SEMICOLON);
        return parse.resultConclude(new StatementExpression(exp));
      }
View Full Code Here

    return CoreUtil.blindCast(declResult);
  }
 
  public NodeResult<StatementExpression> parseStatementExpression() {
    ParseHelper parse = new ParseHelper(-1);
    Expression exp = parseExpression().node;
    if(exp == null) {
      return nullResult();
    }
    parse.nodeStart = exp.getStartPos();
    parse.consumeRequired(DeeTokens.SEMICOLON);
    return parse.resultConclude(new StatementExpression(exp));
  }
View Full Code Here

  public NodeResult<? extends IStatement> parseStatement_ifStart() {
    if(!tryConsume(DeeTokens.KW_IF))
      return null;
    ParseHelper parse = new ParseHelper();
   
    Expression condition = null;
    VariableDefWithInit conditionVar = null;
    IStatement thenBody = null;
    IStatement elseBody = null;
   
    parsing: {
View Full Code Here

          defId = parseDefId();
          if(revertIfInvalid && defId.isMissing()) break successfulParsing;
        }
      }
     
      Expression defaultValue = null;
      parse.consumeRequired(DeeTokens.ASSIGN);
      if(parse.ruleBroken) {
        if(type instanceof RefTypePointer) {
          break successfulParsing; // Parse as exp instead
        }
View Full Code Here

    if(!tryConsume(DeeTokens.KW_DO))
      return nullResult();
    ParseHelper parse = new ParseHelper();
   
    IStatement body = null;
    Expression condition = null;
    parsing: {
      body = parse.checkResult(parseStatement_toMissing(RULE_ST_OR_BLOCK));
      if(parse.ruleBroken) break parsing;
     
      if(parse.consumeRequired(DeeTokens.KW_WHILE).ruleBroken) break parsing;
View Full Code Here

    if(!tryConsume(DeeTokens.KW_FOR))
      return nullResult();
    ParseHelper parse = new ParseHelper();
   
    IStatement init = null;
    Expression condition = null;
    Expression increment = null;
    IStatement body = null;
   
    parsing: {
      if(parse.consumeRequired(DeeTokens.OPEN_PARENS).ruleBroken) break parsing;
     
View Full Code Here

      return nullResult();
    ParseHelper parse = new ParseHelper();
   
    boolean isForeachReverse = lastLexElement().type == DeeTokens.KW_FOREACH_REVERSE;
    ArrayView<ForeachVariableDef> varParams = null;
    Expression iterable = null;
    IStatement body = null;
   
    parsing: {
      if(parse.consumeRequired(DeeTokens.OPEN_PARENS).ruleBroken) break parsing;
   
View Full Code Here

      isFinal = true;
    } else {
      return nullResult();
    }
   
    Expression exp;
    IStatement body = null;
    parsing: {
      exp = parseExpressionAroundParentheses(parse, true, false);
      if(parse.ruleBroken) break parsing;
     
View Full Code Here

TOP

Related Classes of dtool.ast.expressions.Expression

Copyright © 2018 www.massapicom. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.