MCPcopy Create free account
hub / github.com/antlr/codebuff / indexTree

Method indexTree

src/org/antlr/codebuff/Trainer.java:913–938  ·  view source on GitHub ↗

Make an index for fast lookup from Token to tree leaf

(ParserRuleContext root)

Source from the content-addressed store, hash-verified

911
912 /** Make an index for fast lookup from Token to tree leaf */
913 public static Map<Token, TerminalNode> indexTree(ParserRuleContext root) {
914 Map<Token, TerminalNode> tokenToNodeMap = new HashMap<>();
915 ParseTreeWalker.DEFAULT.walk(
916 new ParseTreeListener() {
917 @Override
918 public void visitTerminal(TerminalNode node) {
919 Token curToken = node.getSymbol();
920 tokenToNodeMap.put(curToken, node);
921 }
922
923 @Override
924 public void visitErrorNode(ErrorNode node) {
925 }
926
927 @Override
928 public void enterEveryRule(ParserRuleContext ctx) {
929 }
930
931 @Override
932 public void exitEveryRule(ParserRuleContext ctx) {
933 }
934 },
935 root
936 );
937 return tokenToNodeMap;
938 }
939
940 public static List<Token> getRealTokens(CommonTokenStream tokens) {
941 List<Token> real = new ArrayList<>();

Callers 2

setTreeMethod · 0.95
formatMethod · 0.80

Calls 1

walkMethod · 0.45

Tested by

no test coverage detected