コード例 #1
0
ファイル: basic_parsing.py プロジェクト: cocode/TrekBASIC
 def __init__(self, keyword, args):
     super().__init__(keyword, "")
     then = args.find("THEN")
     assert_syntax(then != -1, "No THEN found for IF")
     then_clause = args[then + len("THEN"):]
     self._additional = then_clause.strip()
     lexer = get_lexer()
     left_over = args[:then]
     self._tokens = lexer.lex(left_over)
     super().__init__(keyword, "")
コード例 #2
0
ファイル: basic_parsing.py プロジェクト: cocode/TrekBASIC
    def __init__(self, keyword, args):
        super().__init__(keyword, "")

        try:
            variable, value = args.split("=", 1)
        except Exception as e:
            raise BasicSyntaxError(F"Error in expression. No '='.")

        lexer = get_lexer()
        self._tokens = lexer.lex(value)
        self._expression = Expression()
        self._variable = variable.strip()
コード例 #3
0
ファイル: basic_parsing.py プロジェクト: cocode/TrekBASIC
    def __init__(self, keyword, args):
        super().__init__(keyword, "")

        try:
            variable, value = args.split("=", 1)
        except Exception as e:
            raise BasicSyntaxError(F"Error in expression. No '='.")

        variable = variable.strip()
        assert_syntax(
            len(variable) == 6 and variable.startswith("FN")
            and variable[3] == '(' and variable[5] == ')',
            "Function definition error")
        self._function_arg = variable[4]
        self._variable = variable[:3]
        lexer = get_lexer()
        self._tokens = lexer.lex(value)
        self._value = value.strip()
コード例 #4
0
ファイル: basic_statements.py プロジェクト: cocode/TrekBASIC
def eval_expression(symbols, value):
    lexer = get_lexer()
    tokens = lexer.lex(value)
    e = Expression()
    result = e.eval(tokens, symbols=symbols)
    return result
コード例 #5
0
 def setUp(self):
     # Just use the lexer for convenience. We culd just create the tokens used for operands manually
     self._lexer = get_lexer()
コード例 #6
0
 def setUp(self):
     self._lexer = get_lexer()