MCPcopy Index your code
hub / github.com/nodejs/node / Tokenizer

Class Tokenizer

tools/test.py:1106–1171  ·  view source on GitHub ↗

A simple string tokenizer that chops expressions into variables, parens and operators

Source from the content-addressed store, hash-verified

1104
1105
1106class Tokenizer(object):
1107 """A simple string tokenizer that chops expressions into variables,
1108 parens and operators"""
1109
1110 def __init__(self, expr):
1111 self.index = 0
1112 self.expr = expr
1113 self.length = len(expr)
1114 self.tokens = None
1115
1116 def Current(self, length = 1):
1117 if not self.HasMore(length): return ""
1118 return self.expr[self.index:self.index+length]
1119
1120 def HasMore(self, length = 1):
1121 return self.index < self.length + (length - 1)
1122
1123 def Advance(self, count = 1):
1124 self.index = self.index + count
1125
1126 def AddToken(self, token):
1127 self.tokens.append(token)
1128
1129 def SkipSpaces(self):
1130 while self.HasMore() and self.Current().isspace():
1131 self.Advance()
1132
1133 def Tokenize(self):
1134 self.tokens = [ ]
1135 while self.HasMore():
1136 self.SkipSpaces()
1137 if not self.HasMore():
1138 return None
1139 if self.Current() == '(':
1140 self.AddToken('(')
1141 self.Advance()
1142 elif self.Current() == ')':
1143 self.AddToken(')')
1144 self.Advance()
1145 elif self.Current() == '$':
1146 self.AddToken('$')
1147 self.Advance()
1148 elif self.Current() == ',':
1149 self.AddToken(',')
1150 self.Advance()
1151 elif IsAlpha(self.Current()):
1152 buf = ""
1153 while self.HasMore() and IsAlpha(self.Current()):
1154 buf += self.Current()
1155 self.Advance()
1156 self.AddToken(buf)
1157 elif self.Current(2) == '&&':
1158 self.AddToken('&&')
1159 self.Advance(2)
1160 elif self.Current(2) == '||':
1161 self.AddToken('||')
1162 self.Advance(2)
1163 elif self.Current(2) == '==':

Callers 1

ParseConditionFunction · 0.70

Calls

no outgoing calls

Tested by 1

ParseConditionFunction · 0.56

Used in the wild real call sites across dependent graphs

searching dependent graphs…