本文整理匯總了Java中org.antlr.runtime.tree.CommonTreeNodeStream.consume方法的典型用法代碼示例。如果您正苦於以下問題:Java CommonTreeNodeStream.consume方法的具體用法?Java CommonTreeNodeStream.consume怎麽用?Java CommonTreeNodeStream.consume使用的例子?那麽, 這裏精選的方法代碼示例或許可以為您提供幫助。您也可以進一步了解該方法所在類org.antlr.runtime.tree.CommonTreeNodeStream
的用法示例。
在下文中一共展示了CommonTreeNodeStream.consume方法的4個代碼示例,這些例子默認根據受歡迎程度排序。您可以為喜歡或者感覺有用的代碼點讚,您的評價將有助於係統推薦出更棒的Java代碼示例。
示例1: toTokenString
import org.antlr.runtime.tree.CommonTreeNodeStream; //導入方法依賴的package包/類
public String toTokenString() {
CharStream input = this.token.getInputStream();
GrammarASTAdaptor adaptor = new GrammarASTAdaptor(input);
CommonTreeNodeStream nodes =
new CommonTreeNodeStream(adaptor, this);
StringBuilder buf = new StringBuilder();
GrammarAST o = (GrammarAST)nodes.LT(1);
int type = adaptor.getType(o);
while ( type!=Token.EOF ) {
buf.append(" ");
buf.append(o.getText());
nodes.consume();
o = (GrammarAST)nodes.LT(1);
type = adaptor.getType(o);
}
return buf.toString();
}
示例2: testPushPop
import org.antlr.runtime.tree.CommonTreeNodeStream; //導入方法依賴的package包/類
public void testPushPop() throws Exception {
// ^(101 ^(102 103) ^(104 105) ^(106 107) 108 109)
// stream has 9 real + 8 nav nodes
// Sequence of types: 101 DN 102 DN 103 UP 104 DN 105 UP 106 DN 107 UP 108 109 UP
Tree r0 = new CommonTree(new CommonToken(101));
Tree r1 = new CommonTree(new CommonToken(102));
r1.addChild(new CommonTree(new CommonToken(103)));
r0.addChild(r1);
Tree r2 = new CommonTree(new CommonToken(104));
r2.addChild(new CommonTree(new CommonToken(105)));
r0.addChild(r2);
Tree r3 = new CommonTree(new CommonToken(106));
r3.addChild(new CommonTree(new CommonToken(107)));
r0.addChild(r3);
r0.addChild(new CommonTree(new CommonToken(108)));
r0.addChild(new CommonTree(new CommonToken(109)));
CommonTreeNodeStream stream = new CommonTreeNodeStream(r0);
String expecting = " 101 2 102 2 103 3 104 2 105 3 106 2 107 3 108 109 3";
String found = stream.toString();
assertEquals(expecting, found);
// Assume we want to hit node 107 and then "call 102" then return
int indexOf102 = 2;
int indexOf107 = 12;
for (int k=1; k<=indexOf107; k++) { // consume til 107 node
stream.consume();
}
// CALL 102
assertEquals(107, ((Tree)stream.LT(1)).getType());
stream.push(indexOf102);
assertEquals(102, ((Tree)stream.LT(1)).getType());
stream.consume(); // consume 102
assertEquals(Token.DOWN, ((Tree)stream.LT(1)).getType());
stream.consume(); // consume DN
assertEquals(103, ((Tree)stream.LT(1)).getType());
stream.consume(); // consume 103
assertEquals(Token.UP, ((Tree)stream.LT(1)).getType());
// RETURN
stream.pop();
assertEquals(107, ((Tree)stream.LT(1)).getType());
}
示例3: testNestedPushPop
import org.antlr.runtime.tree.CommonTreeNodeStream; //導入方法依賴的package包/類
public void testNestedPushPop() throws Exception {
// ^(101 ^(102 103) ^(104 105) ^(106 107) 108 109)
// stream has 9 real + 8 nav nodes
// Sequence of types: 101 DN 102 DN 103 UP 104 DN 105 UP 106 DN 107 UP 108 109 UP
Tree r0 = new CommonTree(new CommonToken(101));
Tree r1 = new CommonTree(new CommonToken(102));
r1.addChild(new CommonTree(new CommonToken(103)));
r0.addChild(r1);
Tree r2 = new CommonTree(new CommonToken(104));
r2.addChild(new CommonTree(new CommonToken(105)));
r0.addChild(r2);
Tree r3 = new CommonTree(new CommonToken(106));
r3.addChild(new CommonTree(new CommonToken(107)));
r0.addChild(r3);
r0.addChild(new CommonTree(new CommonToken(108)));
r0.addChild(new CommonTree(new CommonToken(109)));
CommonTreeNodeStream stream = new CommonTreeNodeStream(r0);
// Assume we want to hit node 107 and then "call 102", which
// calls 104, then return
int indexOf102 = 2;
int indexOf107 = 12;
for (int k=1; k<=indexOf107; k++) { // consume til 107 node
stream.consume();
}
assertEquals(107, ((Tree)stream.LT(1)).getType());
// CALL 102
stream.push(indexOf102);
assertEquals(102, ((Tree)stream.LT(1)).getType());
stream.consume(); // consume 102
assertEquals(Token.DOWN, ((Tree)stream.LT(1)).getType());
stream.consume(); // consume DN
assertEquals(103, ((Tree)stream.LT(1)).getType());
stream.consume(); // consume 103
// CALL 104
int indexOf104 = 6;
stream.push(indexOf104);
assertEquals(104, ((Tree)stream.LT(1)).getType());
stream.consume(); // consume 102
assertEquals(Token.DOWN, ((Tree)stream.LT(1)).getType());
stream.consume(); // consume DN
assertEquals(105, ((Tree)stream.LT(1)).getType());
stream.consume(); // consume 103
assertEquals(Token.UP, ((Tree)stream.LT(1)).getType());
// RETURN (to UP node in 102 subtree)
stream.pop();
assertEquals(Token.UP, ((Tree)stream.LT(1)).getType());
// RETURN (to empty stack)
stream.pop();
assertEquals(107, ((Tree)stream.LT(1)).getType());
}
示例4: testPushPopFromEOF
import org.antlr.runtime.tree.CommonTreeNodeStream; //導入方法依賴的package包/類
public void testPushPopFromEOF() throws Exception {
// ^(101 ^(102 103) ^(104 105) ^(106 107) 108 109)
// stream has 9 real + 8 nav nodes
// Sequence of types: 101 DN 102 DN 103 UP 104 DN 105 UP 106 DN 107 UP 108 109 UP
Tree r0 = new CommonTree(new CommonToken(101));
Tree r1 = new CommonTree(new CommonToken(102));
r1.addChild(new CommonTree(new CommonToken(103)));
r0.addChild(r1);
Tree r2 = new CommonTree(new CommonToken(104));
r2.addChild(new CommonTree(new CommonToken(105)));
r0.addChild(r2);
Tree r3 = new CommonTree(new CommonToken(106));
r3.addChild(new CommonTree(new CommonToken(107)));
r0.addChild(r3);
r0.addChild(new CommonTree(new CommonToken(108)));
r0.addChild(new CommonTree(new CommonToken(109)));
CommonTreeNodeStream stream = new CommonTreeNodeStream(r0);
while ( stream.LA(1)!=Token.EOF ) {
stream.consume();
}
int indexOf102 = 2;
int indexOf104 = 6;
assertEquals(Token.EOF, ((Tree)stream.LT(1)).getType());
// CALL 102
stream.push(indexOf102);
assertEquals(102, ((Tree)stream.LT(1)).getType());
stream.consume(); // consume 102
assertEquals(Token.DOWN, ((Tree)stream.LT(1)).getType());
stream.consume(); // consume DN
assertEquals(103, ((Tree)stream.LT(1)).getType());
stream.consume(); // consume 103
assertEquals(Token.UP, ((Tree)stream.LT(1)).getType());
// RETURN (to empty stack)
stream.pop();
assertEquals(Token.EOF, ((Tree)stream.LT(1)).getType());
// CALL 104
stream.push(indexOf104);
assertEquals(104, ((Tree)stream.LT(1)).getType());
stream.consume(); // consume 102
assertEquals(Token.DOWN, ((Tree)stream.LT(1)).getType());
stream.consume(); // consume DN
assertEquals(105, ((Tree)stream.LT(1)).getType());
stream.consume(); // consume 103
assertEquals(Token.UP, ((Tree)stream.LT(1)).getType());
// RETURN (to empty stack)
stream.pop();
assertEquals(Token.EOF, ((Tree)stream.LT(1)).getType());
}