Package dtool.ast.expressions

Examples of dtool.ast.expressions.Resolvable$ITemplateRefNode


  protected ASTNode parseTemplateAliasParameter_start() {
    consumeLookAhead(DeeTokens.KW_ALIAS);
    ParseHelper parse = new ParseHelper();
   
    ProtoDefSymbol defId;
    Resolvable init = null;
    Resolvable specialization = null;
   
    parsing: {
      defId = parse.checkResult(parseDefId());
      if(parse.ruleBroken) break parsing;
     
View Full Code Here


    if(isTemplateInstanceLookahead() && isValidTemplateReferenceSyntax(leftRef)){ // template instance
      consumeLookAhead();
     
      ITemplateRefNode tplRef = (ITemplateRefNode) leftRef;
      NodeListView<Resolvable> tplArgs = null;
      Resolvable singleArg = null;
     
      if(tryConsume(DeeTokens.OPEN_PARENS)) {
        tplArgs = parseTypeOrExpArgumentList(parse, DeeTokens.COMMA, DeeTokens.CLOSE_PARENS);
      } else {
        if(leftRef instanceof RefTemplateInstance) {
View Full Code Here

      parse.consumeRequired(DeeTokens.CLOSE_BRACKET);
      return parse.conclude(new RefSlice(leftRef, startIndex, endIndex));
    }
    parse.consumeRequired(DeeTokens.CLOSE_BRACKET);
   
    Resolvable resolvable = argTypeOrExp.toFinalResult(true).node;
    if(resolvable == null) {
      return parse.conclude(new RefTypeDynArray(leftRef));
    } else {
      return parse.conclude(new RefIndexing(leftRef, resolvable));
    }
View Full Code Here

    if(!tryConsume(DeeTokens.OPEN_PARENS))
      return null;
    ParseHelper parse = new ParseHelper();
   
    TypeOrExpResult arg = parseTypeOrExpression(ANY_OPERATOR);
    Resolvable resolvable;
   
    boolean isDotAfterParensSyntax = lookAhead() == DeeTokens.CLOSE_PARENS && lookAhead(1) == DeeTokens.DOT;
    if(isDotAfterParensSyntax) {
      resolvable = nullTypeOrExpToParseMissing(arg.toFinalResult(true).node);
    } else {
View Full Code Here

   
    Reference ref = null;
    Expression exp = null;
    parsing: {
      if(parse.consumeRequired(DeeTokens.OPEN_PARENS).ruleBroken) break parsing;
      Resolvable resolvable = nullTypeOrExpToParseMissing(parseTypeOrExpression(true).node);
      if(resolvable instanceof Reference) {
        ref = (Reference) resolvable;
      } else {
        exp = (Expression) resolvable;
      }
View Full Code Here

    return result.node;
  }
 
  protected Expression parseTypeOrExpression_start(InfixOpType precedenceLimit) {
    Expression prefixExp;
    Resolvable prefixExpResolvable = parsePrimaryExpression();
    if(prefixExpResolvable == null || prefixExpResolvable instanceof Expression) {
      prefixExp = (Expression) prefixExpResolvable;
    } else {
      Reference ref = (Reference) prefixExpResolvable;
      boolean isTypeAsExpError = !refIsAllowedInExp(ref, breakRule || lookAhead() == DeeTokens.OPEN_PARENS);
View Full Code Here

  }
 
  protected final class TypeOrExpArgumentListSimpleParse extends SimpleListParseHelper<Resolvable> {
    @Override
    protected Resolvable parseElement(boolean createMissing) {
      Resolvable arg = parseTypeOrAssignExpression(true).node;
      return createMissing ? nullTypeOrExpToParseMissing(arg) : arg;
    }
View Full Code Here

    if(!tryConsume(DeeTokens.KW_GOTO))
      return nullResult();
    ParseHelper parse = new ParseHelper();
   
    if(tryConsume(DeeTokens.KW_CASE)) {
      Resolvable exp = parseExpression().node;
      parse.consumeRequired(DeeTokens.SEMICOLON);
      return parse.resultConclude(new StatementGotoCase(exp));
    }
    if(tryConsume(DeeTokens.KW_DEFAULT)) {
      parse.consumeRequired(DeeTokens.SEMICOLON);
View Full Code Here

TOP

Related Classes of dtool.ast.expressions.Resolvable$ITemplateRefNode

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.