コード例 #1
0
 public void accept(IASTVisitor visitor) {
   boolean visitChildren = visitor.visit(this);
   if (visitChildren) {
     expr.accept(visitor);
   }
   visitor.endVisit(this);
 }
コード例 #2
0
ファイル: ParseUtil.java プロジェクト: dineshkummarc/studio3
  public static void treeApply(IParseNode node, IASTVisitor function, boolean recursive) {
    if (node == null || function == null) {
      return;
    }

    List<QueueEntry> queue = new LinkedList<QueueEntry>();

    // prime queue
    queue.add(new QueueEntry(node, true));

    while (!queue.isEmpty()) {
      QueueEntry current = queue.remove(0);
      // TODO: wrap function call in try/block?

      // Entering a node
      if (current.enter) {
        // apply function
        if (!function.enterNode(current.node)) {
          // stop processing if the function indicates to do so
          break;
        }

        if (recursive) {
          int i = 0;
          if (current.node instanceof ParseRootNode) {
            // Insert the children to front of the list, in-order
            for (IParseNode commentNode : ((ParseRootNode) node).getCommentNodes()) {
              queue.add(i++, new QueueEntry(commentNode, true));
            }
          }

          // Insert the children to front of the list, in-order
          for (IParseNode child : current.node) {
            queue.add(i++, new QueueEntry(child, true));
          }
          // This sticks the exit of the node at the end?
          queue.add(i++, new QueueEntry(current.node, false));
        }
      }
      // Exiting a node
      else {
        // apply function
        if (!function.exitNode(current.node)) {
          // stop processing if the function indicates to do so
          break;
        }
      }
    }
  }
コード例 #3
0
ファイル: StringLiteral.java プロジェクト: wnederhof/rascal
 @Override
 public <T> T accept(IASTVisitor<T> visitor) {
   return visitor.visitStringLiteralInterpolated(this);
 }
コード例 #4
0
 public <T> T accept(IASTVisitor<T> v) {
   return v.visitIntegerLiteralAmbiguity(this);
 }
コード例 #5
0
ファイル: StringTail.java プロジェクト: BertLisser/rascal
 public <T> T accept(IASTVisitor<T> v) {
   return v.visitStringTailAmbiguity(this);
 }
コード例 #6
0
ファイル: Import.java プロジェクト: JJWTimmer/rascal
 @Override
 public <T> T accept(IASTVisitor<T> visitor) {
   return visitor.visitImportDefault(this);
 }
コード例 #7
0
ファイル: Import.java プロジェクト: JJWTimmer/rascal
 @Override
 public <T> T accept(IASTVisitor<T> visitor) {
   return visitor.visitImportExternal(this);
 }
コード例 #8
0
ファイル: TypeVar.java プロジェクト: BertLisser/rascal
 public <T> T accept(IASTVisitor<T> v) {
   return v.visitTypeVarAmbiguity(this);
 }
コード例 #9
0
ファイル: JustTime.java プロジェクト: kevinvandervlist/rascal
 public <T> T accept(IASTVisitor<T> v) {
   return v.visitJustTimeLexical(this);
 }
コード例 #10
0
ファイル: JustTime.java プロジェクト: kevinvandervlist/rascal
 public <T> T accept(IASTVisitor<T> v) {
   return v.visitJustTimeAmbiguity(this);
 }
コード例 #11
0
ファイル: PathChars.java プロジェクト: BertLisser/rascal
 public <T> T accept(IASTVisitor<T> v) {
   return v.visitPathCharsAmbiguity(this);
 }
コード例 #12
0
ファイル: Command.java プロジェクト: jeroenpeeters/rascal
 @Override
 public <T> T accept(IASTVisitor<T> visitor) {
   return visitor.visitCommandDeclaration(this);
 }
コード例 #13
0
ファイル: Command.java プロジェクト: jeroenpeeters/rascal
 @Override
 public <T> T accept(IASTVisitor<T> visitor) {
   return visitor.visitCommandStatement(this);
 }
コード例 #14
0
ファイル: Command.java プロジェクト: jeroenpeeters/rascal
 @Override
 public <T> T accept(IASTVisitor<T> visitor) {
   return visitor.visitCommandImport(this);
 }
コード例 #15
0
ファイル: Command.java プロジェクト: jeroenpeeters/rascal
 @Override
 public <T> T accept(IASTVisitor<T> visitor) {
   return visitor.visitCommandExpression(this);
 }
コード例 #16
0
ファイル: Strategy.java プロジェクト: wnederhof/rascal
 @Override
 public <T> T accept(IASTVisitor<T> visitor) {
   return visitor.visitStrategyBottomUpBreak(this);
 }
コード例 #17
0
ファイル: TypeVar.java プロジェクト: BertLisser/rascal
 @Override
 public <T> T accept(IASTVisitor<T> visitor) {
   return visitor.visitTypeVarFree(this);
 }
コード例 #18
0
ファイル: Catch.java プロジェクト: kevinvandervlist/rascal
 @Override
 public <T> T accept(IASTVisitor<T> visitor) {
   return visitor.visitCatchBinding(this);
 }
コード例 #19
0
ファイル: Backslash.java プロジェクト: JJWTimmer/rascal
 public <T> T accept(IASTVisitor<T> v) {
   return v.visitBackslashLexical(this);
 }
コード例 #20
0
ファイル: Catch.java プロジェクト: kevinvandervlist/rascal
 public <T> T accept(IASTVisitor<T> v) {
   return v.visitCatchAmbiguity(this);
 }
コード例 #21
0
ファイル: Import.java プロジェクト: JJWTimmer/rascal
 @Override
 public <T> T accept(IASTVisitor<T> visitor) {
   return visitor.visitImportSyntax(this);
 }
コード例 #22
0
ファイル: URLChars.java プロジェクト: stil4m/rascal
 public <T> T accept(IASTVisitor<T> v) {
   return v.visitURLCharsLexical(this);
 }
コード例 #23
0
ファイル: StringTail.java プロジェクト: BertLisser/rascal
 @Override
 public <T> T accept(IASTVisitor<T> visitor) {
   return visitor.visitStringTailPost(this);
 }
コード例 #24
0
 public <T> T accept(IASTVisitor<T> v) {
   return v.visitQualifiedNameAmbiguity(this);
 }
コード例 #25
0
 @Override
 public <T> T accept(IASTVisitor<T> visitor) {
   return visitor.visitIntegerLiteralOctalIntegerLiteral(this);
 }
コード例 #26
0
 @Override
 public <T> T accept(IASTVisitor<T> visitor) {
   return visitor.visitQualifiedNameDefault(this);
 }
コード例 #27
0
ファイル: StringLiteral.java プロジェクト: wnederhof/rascal
 @Override
 public <T> T accept(IASTVisitor<T> visitor) {
   return visitor.visitStringLiteralTemplate(this);
 }
コード例 #28
0
ファイル: Strategy.java プロジェクト: wnederhof/rascal
 @Override
 public <T> T accept(IASTVisitor<T> visitor) {
   return visitor.visitStrategyOutermost(this);
 }
コード例 #29
0
ファイル: LAYOUT.java プロジェクト: stil4m/rascal
 public <T> T accept(IASTVisitor<T> v) {
   return v.visitLAYOUTLexical(this);
 }
コード例 #30
0
ファイル: Strategy.java プロジェクト: wnederhof/rascal
 @Override
 public <T> T accept(IASTVisitor<T> visitor) {
   return visitor.visitStrategyTopDownBreak(this);
 }