projects
/
fur
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Normalize symbol expressions
[fur]
/
tokenization.py
diff --git
a/tokenization.py
b/tokenization.py
index
3131c35
..
3c4dc6f
100644
(file)
--- a/
tokenization.py
+++ b/
tokenization.py
@@
-31,15
+31,15
@@
def _make_token_matcher(definition):
return token_matcher
return token_matcher
-
_TOKEN_MATCHERS = [
_TOKEN_MATCHERS = [
+ ('keyword', r'(def|end)(?![a-z_])'),
('open_parenthese', r'\('),
('close_parenthese', r'\)'),
('comma', r','),
('integer_literal', r'\d+'),
('open_parenthese', r'\('),
('close_parenthese', r'\)'),
('comma', r','),
('integer_literal', r'\d+'),
- ('symbol', r'[a-z]+'),
+ ('symbol', r'[a-z
_
]+'),
('single_quoted_string_literal', r"'.*?'"),
('single_quoted_string_literal', r"'.*?'"),
- ('
equality
_level_operator', r'(<=|>=|==|!=|<|>)'),
+ ('
comparison
_level_operator', r'(<=|>=|==|!=|<|>)'),
('assignment_operator', r'='),
('addition_level_operator', r'(\+|-)'),
('multiplication_level_operator', r'(\*|//|%)'),
('assignment_operator', r'='),
('addition_level_operator', r'(\+|-)'),
('multiplication_level_operator', r'(\*|//|%)'),
@@
-58,6
+58,12
@@
def tokenize(source):
index += 1
continue
index += 1
continue
+ if source[index] == '#':
+ while index < len(source) and source[index] != '\n':
+ index += 1
+
+ continue
+
success = False
for matcher in _TOKEN_MATCHERS:
success = False
for matcher in _TOKEN_MATCHERS:
@@
-205,7
+211,7
@@
if __name__ == '__main__':
self.assertEqual(
tokenize('=='),
(Token(
self.assertEqual(
tokenize('=='),
(Token(
- type='
equality
_level_operator',
+ type='
comparison
_level_operator',
match='==',
index=0,
line=1,
match='==',
index=0,
line=1,
@@
-216,7
+222,7
@@
if __name__ == '__main__':
self.assertEqual(
tokenize('>='),
(Token(
self.assertEqual(
tokenize('>='),
(Token(
- type='
equality
_level_operator',
+ type='
comparison
_level_operator',
match='>=',
index=0,
line=1,
match='>=',
index=0,
line=1,
@@
-227,7
+233,7
@@
if __name__ == '__main__':
self.assertEqual(
tokenize('<='),
(Token(
self.assertEqual(
tokenize('<='),
(Token(
- type='
equality
_level_operator',
+ type='
comparison
_level_operator',
match='<=',
index=0,
line=1,
match='<=',
index=0,
line=1,
@@
-238,7
+244,7
@@
if __name__ == '__main__':
self.assertEqual(
tokenize('>'),
(Token(
self.assertEqual(
tokenize('>'),
(Token(
- type='
equality
_level_operator',
+ type='
comparison
_level_operator',
match='>',
index=0,
line=1,
match='>',
index=0,
line=1,
@@
-249,7
+255,7
@@
if __name__ == '__main__':
self.assertEqual(
tokenize('<'),
(Token(
self.assertEqual(
tokenize('<'),
(Token(
- type='
equality
_level_operator',
+ type='
comparison
_level_operator',
match='<',
index=0,
line=1,
match='<',
index=0,
line=1,
@@
-260,7
+266,7
@@
if __name__ == '__main__':
self.assertEqual(
tokenize('!='),
(Token(
self.assertEqual(
tokenize('!='),
(Token(
- type='
equality
_level_operator',
+ type='
comparison
_level_operator',
match='!=',
index=0,
line=1,
match='!=',
index=0,
line=1,