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

Method getTokenAnalysis

src/org/antlr/codebuff/Formatter.java:426–473  ·  view source on GitHub ↗
(int[] features, int[] featuresForAlign,
	                                              int tokenIndexInStream,
	                                              int injectNL_WS, int alignOrIndent,
	                                              boolean collectAnalysis)

Source from the content-addressed store, hash-verified

424 }
425
426 public TokenPositionAnalysis getTokenAnalysis(int[] features, int[] featuresForAlign,
427 int tokenIndexInStream,
428 int injectNL_WS, int alignOrIndent,
429 boolean collectAnalysis)
430 {
431 CommonToken curToken = (CommonToken)originalDoc.tokens.get(tokenIndexInStream);
432 TerminalNode nodeWithOriginalToken = originalTokenToNodeMap.get(curToken);
433
434 int actualWS = Trainer.getInjectWSCategory(originalTokens, tokenIndexInStream);
435 String actualWSNL = getWSCategoryStr(actualWS);
436 actualWSNL = actualWSNL!=null ? actualWSNL : String.format("%8s","none");
437
438 String wsDisplay = getWSCategoryStr(injectNL_WS);
439 if ( wsDisplay==null ) wsDisplay = String.format("%8s","none");
440 String alignDisplay = getHPosCategoryStr(alignOrIndent);
441 if ( alignDisplay==null ) alignDisplay = String.format("%8s","none");
442 String newlinePredictionString =
443 String.format("### line %d: predicted %s actual %s",
444 curToken.getLine(), wsDisplay, actualWSNL);
445
446 int actualAlignCategory = Trainer.getAlignmentCategory(originalDoc, nodeWithOriginalToken, indentSize);
447 String actualAlignDisplay = getHPosCategoryStr(actualAlignCategory);
448 actualAlignDisplay = actualAlignDisplay!=null ? actualAlignDisplay : String.format("%8s","none");
449
450 String alignPredictionString =
451 String.format("### line %d: predicted %s actual %s",
452 curToken.getLine(),
453 alignDisplay,
454 actualAlignDisplay);
455
456 String newlineAnalysis = "";
457 String alignAnalysis = "";
458 if ( collectAnalysis ) { // this can be slow
459 newlineAnalysis = newlinePredictionString+"\n"+
460 wsClassifier.getPredictionAnalysis(testDoc, k, features, corpus.injectWhitespace,
461 MAX_WS_CONTEXT_DIFF_THRESHOLD);
462 if ( (injectNL_WS&0xFF)==CAT_INJECT_NL ) {
463 alignAnalysis =
464 alignPredictionString+"\n"+
465 hposClassifier.getPredictionAnalysis(testDoc, k, featuresForAlign, corpus.hpos,
466 MAX_ALIGN_CONTEXT_DIFF_THRESHOLD);
467 }
468 }
469 TokenPositionAnalysis a = new TokenPositionAnalysis(curToken, injectNL_WS, newlineAnalysis, alignOrIndent, alignAnalysis);
470 a.actualWS = Trainer.getInjectWSCategory(originalTokens, tokenIndexInStream);
471 a.actualAlign = actualAlignCategory;
472 return a;
473 }
474
475 public static String getWSCategoryStr(int injectNL_WS) {
476 int[] elements = Trainer.triple(injectNL_WS);

Callers 1

processTokenMethod · 0.95

Calls 8

getInjectWSCategoryMethod · 0.95
getWSCategoryStrMethod · 0.95
getHPosCategoryStrMethod · 0.95
getAlignmentCategoryMethod · 0.95
getPredictionAnalysisMethod · 0.80
getMethod · 0.65
formatMethod · 0.45
getLineMethod · 0.45

Tested by

no test coverage detected