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

Method visitTerminal

python/src/ProcessTokens.py:21–60  ·  view source on GitHub ↗
(self, node)

Source from the content-addressed store, hash-verified

19 self.current_indent = 0
20
21 def visitTerminal(self, node):
22 curToken = node.symbol
23 if curToken.type==-1:
24 return
25 if curToken.tokenIndex>=1:
26 # predict newline based upon curToken appearing after prevToken on same line
27 prevToken = self.stream.tokens[curToken.tokenIndex-1]
28 curLine = prevToken.line
29 curToken.column = prevToken.column + len(prevToken.text)
30 else:
31 curLine = 1
32 curToken.column = 0
33 curToken.line = curLine
34
35 vars = groomlib.node_features(self.stream.tokens, node)
36
37 feature_names = groomlib.FEATURE_NAMES
38 n = len(feature_names)
39 d = dict((feature_names[i], vars[i]) for i in range(0, n))
40 # print d
41 transformed_features_testing = self.vec.transform(d).toarray()
42 inject_newline = self.newline_forest.predict(transformed_features_testing)
43 # newline_predictions_proba = self.forest.predict_proba(transformed_data_testing)
44 # print curToken, "->", newline_predictions_proba
45 # print "inject_newline", inject_newline
46 if inject_newline:
47 curToken.line += 1
48 curToken.column = 0
49 print # inject a newline
50 # now figure out indent
51 indent = self.indent_forest.predict(transformed_features_testing)
52 # if indent!=0:
53 # print "indent %d at %s" % (indent,curToken)
54 self.current_indent += indent
55 sys.stdout.write(" " * self.current_indent) # inject indent
56 else:
57 ws = self.whitespace_forest.predict(transformed_features_testing)
58 sys.stdout.write(" " * ws) # inject whitespace before token
59
60 sys.stdout.write(curToken.text)

Callers

nothing calls this directly

Calls 2

writeMethod · 0.65
transformMethod · 0.45

Tested by

no test coverage detected