parent
e597ea1402
commit
9878252505
211
test3.py
211
test3.py
|
@ -1,5 +1,5 @@
|
||||||
import sys
|
import sys
|
||||||
import lex2, lex2_perl, highlight2
|
import lex2, lex2_perl, lex2_python, highlight2
|
||||||
|
|
||||||
color_list = []
|
color_list = []
|
||||||
color_list.extend(['\033[3%dm' % x for x in range(0, 8)])
|
color_list.extend(['\033[3%dm' % x for x in range(0, 8)])
|
||||||
|
@ -17,88 +17,131 @@ for i in range(0, len(color_list)):
|
||||||
color_dict[color_names[i]] = color_list[i]
|
color_dict[color_names[i]] = color_list[i]
|
||||||
|
|
||||||
token_colors = {
|
token_colors = {
|
||||||
# basic stuff
|
'perl': {
|
||||||
'escaped': 'lpurple',
|
# basic stuff
|
||||||
'null': 'white',
|
'escaped': 'lpurple',
|
||||||
'delimiter': 'white',
|
'null': 'white',
|
||||||
'sub': 'lcyan',
|
'delimiter': 'white',
|
||||||
'number': 'white',
|
'sub': 'lcyan',
|
||||||
'operator': 'white',
|
'number': 'white',
|
||||||
'endblock': 'lred',
|
'operator': 'white',
|
||||||
'keyword': 'lpurple',
|
'endblock': 'lred',
|
||||||
'scalar': 'yellow',
|
'keyword': 'lpurple',
|
||||||
'array': 'yellow',
|
'scalar': 'yellow',
|
||||||
'deref': 'yellow',
|
'array': 'yellow',
|
||||||
'hash': 'yellow',
|
'deref': 'yellow',
|
||||||
'hash_key': 'lgreen',
|
'hash': 'yellow',
|
||||||
'comment': 'lred',
|
'hash_key': 'lgreen',
|
||||||
'function': 'lcyan',
|
'comment': 'lred',
|
||||||
'builtin': 'lpurple',
|
'function': 'lcyan',
|
||||||
'method': 'lcyan',
|
'builtin': 'lpurple',
|
||||||
'bareword': 'white',
|
'method': 'lcyan',
|
||||||
'label': 'lcyan',
|
'bareword': 'white',
|
||||||
'package': 'lcyan',
|
'label': 'lcyan',
|
||||||
'class': 'lcyan',
|
'package': 'lcyan',
|
||||||
'use': 'lcyan',
|
'class': 'lcyan',
|
||||||
'method': 'lcyan',
|
'use': 'lcyan',
|
||||||
|
'method': 'lcyan',
|
||||||
|
|
||||||
|
# heredoc
|
||||||
|
'heredoc1.start': 'lgreen',
|
||||||
|
'heredoc1.null': 'lgreen',
|
||||||
|
'heredoc1.end': 'lgreen',
|
||||||
|
'heredoc2.start': 'lgreen',
|
||||||
|
'heredoc2.null': 'lgreen',
|
||||||
|
'heredoc2.end': 'lgreen',
|
||||||
|
'eval_heredoc.start': 'lcyan',
|
||||||
|
'eval_heredoc.null': 'lcyan',
|
||||||
|
'eval_heredoc.end': 'lcyan',
|
||||||
|
|
||||||
|
# pod
|
||||||
|
'pod.start': 'lred',
|
||||||
|
'pod.null': 'lred',
|
||||||
|
'pod.entry': 'lpurple',
|
||||||
|
'pod.end': 'lred',
|
||||||
|
|
||||||
|
# "" strings
|
||||||
|
'string1.start': 'lgreen',
|
||||||
|
'string1.null': 'lgreen',
|
||||||
|
'string1.escaped': 'lpurple',
|
||||||
|
'string1.deref': 'yellow',
|
||||||
|
'string1.end': 'lgreen',
|
||||||
|
|
||||||
|
# '' strings
|
||||||
|
'string2.start': 'lgreen',
|
||||||
|
'string2.null': 'lgreen',
|
||||||
|
'string2.end': 'lgreen',
|
||||||
|
|
||||||
|
# `` strings
|
||||||
|
'evalstring': 'lcyan',
|
||||||
|
|
||||||
|
# quoted region
|
||||||
|
'quoted': 'lcyan',
|
||||||
|
'quoted.start': 'lcyan',
|
||||||
|
'quoted.null': 'lcyan',
|
||||||
|
'quoted.end': 'lcyan',
|
||||||
|
|
||||||
|
# match regex
|
||||||
|
'match.start': 'lcyan',
|
||||||
|
'match.end': 'lcyan',
|
||||||
|
'match.null': 'lcyan',
|
||||||
|
|
||||||
|
# replace regex
|
||||||
|
'replace.start': 'lcyan',
|
||||||
|
'replace.middle': 'lcyan',
|
||||||
|
'replace.end': 'lcyan',
|
||||||
|
'replace.null': 'lcyan',
|
||||||
|
|
||||||
|
# translate regex
|
||||||
|
'translate.start': 'lpurple',
|
||||||
|
'translate.middle': 'lpurple',
|
||||||
|
'translate.end': 'lpurple',
|
||||||
|
'translate.null': 'lpurple',
|
||||||
|
},
|
||||||
|
|
||||||
# heredoc
|
'python': {
|
||||||
'heredoc1.start': 'lgreen',
|
'keyword': 'lcyan',
|
||||||
'heredoc1.null': 'lgreen',
|
'builtin_method': 'lcyan',
|
||||||
'heredoc1.end': 'lgreen',
|
'methodname': 'lblue',
|
||||||
'heredoc2.start': 'lgreen',
|
'classname': 'lgreen',
|
||||||
'heredoc2.null': 'lgreen',
|
|
||||||
'heredoc2.end': 'lgreen',
|
|
||||||
'eval_heredoc.start': 'lcyan',
|
|
||||||
'eval_heredoc.null': 'lcyan',
|
|
||||||
'eval_heredoc.end': 'lcyan',
|
|
||||||
|
|
||||||
# pod
|
'string.start': 'lgreen',
|
||||||
'pod.start': 'lred',
|
'string.null': 'lgreen',
|
||||||
'pod.null': 'lred',
|
'string.escaped': 'lpurple',
|
||||||
'pod.entry': 'lpurple',
|
'string.octal': 'lpurple',
|
||||||
'pod.end': 'lred',
|
'string.format': 'yellow',
|
||||||
|
'string.end': 'lgreen',
|
||||||
|
|
||||||
# "" strings
|
'tq_string.start': 'lgreen',
|
||||||
'string1.start': 'lgreen',
|
'tq_string.null': 'lgreen',
|
||||||
'string1.null': 'lgreen',
|
'tq_string.end': 'lgreen',
|
||||||
'string1.escaped': 'lpurple',
|
|
||||||
'string1.deref': 'yellow',
|
|
||||||
'string1.end': 'lgreen',
|
|
||||||
|
|
||||||
# '' strings
|
'docstring.start': 'lgreen',
|
||||||
'string2.start': 'lgreen',
|
'docstring.null': 'lgreen',
|
||||||
'string2.null': 'lgreen',
|
'docstring.end': 'lgreen',
|
||||||
'string2.end': 'lgreen',
|
|
||||||
|
|
||||||
# `` strings
|
|
||||||
'evalstring': 'lcyan',
|
|
||||||
|
|
||||||
# quoted region
|
|
||||||
'quoted': 'lcyan',
|
|
||||||
'quoted.start': 'lcyan',
|
|
||||||
'quoted.null': 'lcyan',
|
|
||||||
'quoted.end': 'lcyan',
|
|
||||||
|
|
||||||
# match regex
|
|
||||||
'match.start': 'lcyan',
|
|
||||||
'match.end': 'lcyan',
|
|
||||||
'match.null': 'lcyan',
|
|
||||||
|
|
||||||
# replace regex
|
|
||||||
'replace.start': 'lcyan',
|
|
||||||
'replace.middle': 'lcyan',
|
|
||||||
'replace.end': 'lcyan',
|
|
||||||
'replace.null': 'lcyan',
|
|
||||||
|
|
||||||
# translate regex
|
|
||||||
'translate.start': 'lpurple',
|
|
||||||
'translate.middle': 'lpurple',
|
|
||||||
'translate.end': 'lpurple',
|
|
||||||
'translate.null': 'lpurple',
|
|
||||||
|
|
||||||
|
'comment': 'lred',
|
||||||
|
'continuation': 'lred',
|
||||||
|
#'operator': 'yellow',
|
||||||
|
#'delimiter': 'lpurple',
|
||||||
|
'system_identifier': 'lcyan',
|
||||||
|
#'bound method': color.build('yellow', 'default'),
|
||||||
|
'import': 'lpurple',
|
||||||
|
#'bizzaro': 'lpurple',
|
||||||
|
},
|
||||||
}
|
}
|
||||||
|
|
||||||
|
grammars = {
|
||||||
|
'perl': lex2_perl.PerlGrammar,
|
||||||
|
'python': lex2_python.PythonGrammar,
|
||||||
|
}
|
||||||
|
|
||||||
|
#t = 'perl'
|
||||||
|
t = 'python'
|
||||||
|
|
||||||
|
m = True
|
||||||
|
#m = False
|
||||||
|
|
||||||
paths = sys.argv[1:]
|
paths = sys.argv[1:]
|
||||||
for path in paths:
|
for path in paths:
|
||||||
f = open(path, 'r')
|
f = open(path, 'r')
|
||||||
|
@ -106,10 +149,14 @@ for path in paths:
|
||||||
f.close()
|
f.close()
|
||||||
|
|
||||||
lines = data.split('\n')
|
lines = data.split('\n')
|
||||||
|
lexer = lex2.Lexer('lexer', grammars[t]())
|
||||||
|
|
||||||
grammar = lex2_perl.PerlGrammar()
|
if m:
|
||||||
lexer = lex2.Lexer('lexer', grammar)
|
highlighter = highlight2.Highlighter(lexer)
|
||||||
highlighter = highlight2.Highlighter(lexer)
|
|
||||||
|
highlighter.highlight(lines)
|
||||||
highlighter.highlight(lines)
|
highlighter.display(token_colors[t])
|
||||||
highlighter.display(token_colors)
|
else:
|
||||||
|
lexer.lex(lines)
|
||||||
|
for token in lexer:
|
||||||
|
print '%-28s| %r' % (token.name, token.string)
|
||||||
|
|
Loading…
Reference in New Issue