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

Method getFeatures

src/org/antlr/codebuff/Trainer.java:512–541  ·  view source on GitHub ↗
(int i)

Source from the content-addressed store, hash-verified

510 }
511
512 public int[] getFeatures(int i) {
513 CodeBuffTokenStream tokens = doc.tokens;
514 TerminalNode node = tokenToNodeMap.get(tokens.get(i));
515 if ( node==null ) {
516 System.err.println("### No node associated with token "+tokens.get(i));
517 return null;
518 }
519
520 Token curToken = node.getSymbol();
521 Token prevToken = tokens.getPreviousRealToken(i);
522 Token prevPrevToken = prevToken!=null ? doc.tokens.getPreviousRealToken(prevToken.getTokenIndex()) : null;
523
524 boolean prevTokenStartsLine = false;
525 if ( prevToken!=null && prevPrevToken!=null ) {
526 prevTokenStartsLine = prevToken.getLine()>prevPrevToken.getLine();
527 }
528
529 boolean curTokenStartsNewLine = false;
530 if ( prevToken==null ) curTokenStartsNewLine = true; // we must be at start of file
531 else if ( curToken.getLine() > prevToken.getLine() ) curTokenStartsNewLine = true;
532
533 int[] features = getContextFeatures(corpus, tokenToNodeMap, doc, i);
534
535 setListInfoFeatures(corpus.tokenToListInfo, features, curToken);
536
537 features[INDEX_PREV_FIRST_ON_LINE] = prevTokenStartsLine ? 1 : 0;
538 features[INDEX_FIRST_ON_LINE] = curTokenStartsNewLine ? 1 : 0;
539
540 return features;
541 }
542
543 /** Get the token type and tree ancestor features. These are computed
544 * the same for both training and formatting.

Callers 1

Calls 6

getPreviousRealTokenMethod · 0.95
getContextFeaturesMethod · 0.95
setListInfoFeaturesMethod · 0.95
getTokenIndexMethod · 0.80
getMethod · 0.65
getLineMethod · 0.45

Tested by

no test coverage detected