MCPcopy Create free account
hub / github.com/RetiredWizard/PyDOS / __relexpr

Method __relexpr

PyBasic/basicparser.py:1347–1383  ·  view source on GitHub ↗

Parses a relational expression

(self)

Source from the content-addressed store, hash-verified

1345
1346
1347 def __relexpr(self):
1348 """Parses a relational expression
1349 """
1350 self.__expr()
1351
1352 # Since BASIC uses same operator for both
1353 # assignment and equality, we need to check for this
1354 if self.__token.category == Token.ASSIGNOP:
1355 self.__token.category = Token.EQUAL
1356
1357 if self.__token.category in [Token.LESSER, Token.LESSEQUAL,
1358 Token.GREATER, Token.GREATEQUAL,
1359 Token.EQUAL, Token.NOTEQUAL]:
1360 savecat = self.__token.category
1361 self.__advance()
1362 self.__expr()
1363
1364 right = self.__operand_stack.pop()
1365 left = self.__operand_stack.pop()
1366
1367 if savecat == Token.EQUAL:
1368 self.__operand_stack.append(left == right) # Push True or False
1369
1370 elif savecat == Token.NOTEQUAL:
1371 self.__operand_stack.append(left != right) # Push True or False
1372
1373 elif savecat == Token.LESSER:
1374 self.__operand_stack.append(left < right) # Push True or False
1375
1376 elif savecat == Token.GREATER:
1377 self.__operand_stack.append(left > right) # Push True or False
1378
1379 elif savecat == Token.LESSEQUAL:
1380 self.__operand_stack.append(left <= right) # Push True or False
1381
1382 elif savecat == Token.GREATEQUAL:
1383 self.__operand_stack.append(left >= right) # Push True or False
1384
1385 def __logexpr(self):
1386 """Parses a logical expression

Callers 1

__notexprMethod · 0.95

Calls 2

__exprMethod · 0.95
__advanceMethod · 0.95

Tested by

no test coverage detected