Lines Matching refs:scan
1147 def ParseAtomicExpression(scan):
1148 if scan.Current() == "true":
1149 scan.Advance()
1151 elif scan.Current() == "false":
1152 scan.Advance()
1154 elif IsAlpha(scan.Current()):
1155 name = scan.Current()
1156 scan.Advance()
1158 elif scan.Current() == '$':
1159 scan.Advance()
1160 if not IsAlpha(scan.Current()):
1162 name = scan.Current()
1163 scan.Advance()
1165 elif scan.Current() == '(':
1166 scan.Advance()
1167 result = ParseLogicalExpression(scan)
1168 if (not result) or (scan.Current() != ')'):
1170 scan.Advance()
1177 def ParseOperatorExpression(scan):
1178 left = ParseAtomicExpression(scan)
1180 while scan.HasMore() and (scan.Current() in BINARIES):
1181 op = scan.Current()
1182 scan.Advance()
1183 right = ParseOperatorExpression(scan)
1190 def ParseConditionalExpression(scan):
1191 left = ParseOperatorExpression(scan)
1193 while scan.HasMore() and (scan.Current() == 'if'):
1194 scan.Advance()
1195 right = ParseOperatorExpression(scan)
1203 def ParseLogicalExpression(scan):
1204 left = ParseConditionalExpression(scan)
1206 while scan.HasMore() and (scan.Current() in LOGICALS):
1207 op = scan.Current()
1208 scan.Advance()
1209 right = ParseConditionalExpression(scan)
1222 scan = Scanner(tokens)
1223 ast = ParseLogicalExpression(scan)
1227 if scan.HasMore():