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

Method main

src/org/antlr/codebuff/Dbg.java:38–107  ·  view source on GitHub ↗
(String[] args)

Source from the content-addressed store, hash-verified

36
37
38 public static void main(String[] args)
39 throws Exception
40 {
41 if ( args.length<2 ) {
42 System.err.println("Dbg [-leave-one-out] [-java|-java8|-antlr|-sqlite|-tsql] test-file");
43 }
44
45 int arg = 0;
46 boolean leaveOneOut = true;
47 boolean collectAnalysis = true;
48 String language = args[arg++];
49 language = language.substring(1);
50 String testFilename = args[arg];
51 String output = "???";
52 InputDocument testDoc = null;
53 GUIController controller;
54 List<TokenPositionAnalysis> analysisPerToken = null;
55 Pair<String, List<TokenPositionAnalysis>> results;
56 LangDescriptor lang = null;
57 long start = 0, stop = 0;
58 for (int i = 0; i<Tool.languages.length; i++) {
59 if ( Tool.languages[i].name.equals(language) ) {
60 lang = Tool.languages[i];
61 break;
62 }
63 }
64 if ( lang!=null ) {
65 start = System.nanoTime();
66 LeaveOneOutValidator validator = new LeaveOneOutValidator(lang.corpusDir, lang);
67 Triple<Formatter,Float,Float> val = validator.validateOneDocument(testFilename, null, collectAnalysis);
68 testDoc = Tool.parse(testFilename, lang);
69 stop = System.nanoTime();
70 Formatter formatter = val.a;
71 output = formatter.getOutput();
72 System.out.println("output len = "+output.length());
73 float editDistance = normalizedLevenshteinDistance(testDoc.content, output);
74 System.out.println("normalized Levenshtein distance: "+editDistance);
75 analysisPerToken = formatter.getAnalysisPerToken();
76
77 CommonTokenStream original_tokens = Tool.tokenize(testDoc.content, lang.lexerClass);
78 List<Token> wsTokens = filter(original_tokens.getTokens(),
79 t -> t.getText().matches("\\s+"));
80 String originalWS = tokenText(wsTokens);
81 System.out.println("origin ws tokens len: "+originalWS.length());
82 CommonTokenStream formatted_tokens = Tool.tokenize(output, lang.lexerClass);
83 wsTokens = filter(formatted_tokens.getTokens(),
84 t -> t.getText().matches("\\s+"));
85 String formattedWS = tokenText(wsTokens);
86 System.out.println("formatted ws tokens len: "+formattedWS.length());
87 editDistance = levenshteinDistance(originalWS, formattedWS);
88 editDistance /= Math.max(testDoc.content.length(), output.length());
89 System.out.println("Levenshtein distance of ws normalized to output len: "+editDistance);
90
91 ClassificationAnalysis analysis = new ClassificationAnalysis(testDoc, analysisPerToken);
92 System.out.println(analysis);
93 }
94
95 if ( lang!=null ) {

Callers

nothing calls this directly

Calls 15

validateOneDocumentMethod · 0.95
parseMethod · 0.95
getOutputMethod · 0.95
getAnalysisPerTokenMethod · 0.95
tokenizeMethod · 0.95
tokenTextMethod · 0.95
levenshteinDistanceMethod · 0.95
showMethod · 0.95
equalsMethod · 0.65
getTextMethod · 0.65
lengthMethod · 0.45

Tested by

no test coverage detected