Lines Matching full:scan
976 def ParseAtomicExpression(scan):
977 if scan.Current() == "true":
978 scan.Advance()
980 elif scan.Current() == "false":
981 scan.Advance()
983 elif IsAlpha(scan.Current()):
984 name = scan.Current()
985 scan.Advance()
987 elif scan.Current() == '$':
988 scan.Advance()
989 if not IsAlpha(scan.Current()):
991 name = scan.Current()
992 scan.Advance()
994 elif scan.Current() == '(':
995 scan.Advance()
996 result = ParseLogicalExpression(scan)
997 if (not result) or (scan.Current() != ')'):
999 scan.Advance()
1006 def ParseOperatorExpression(scan):
1007 left = ParseAtomicExpression(scan)
1009 while scan.HasMore() and (scan.Current() in BINARIES):
1010 op = scan.Current()
1011 scan.Advance()
1012 right = ParseOperatorExpression(scan)
1019 def ParseConditionalExpression(scan):
1020 left = ParseOperatorExpression(scan)
1022 while scan.HasMore() and (scan.Current() == 'if'):
1023 scan.Advance()
1024 right = ParseOperatorExpression(scan)
1032 def ParseLogicalExpression(scan):
1033 left = ParseConditionalExpression(scan)
1035 while scan.HasMore() and (scan.Current() in LOGICALS):
1036 op = scan.Current()
1037 scan.Advance()
1038 right = ParseConditionalExpression(scan)
1051 scan = Scanner(tokens)
1052 ast = ParseLogicalExpression(scan)
1056 if scan.HasMore():