def a6(self, value_obj, interpreter_flag=False): Interpreter.interpreter_flag = interpreter_flag sc = self.scanner old_pointer = sc.get_pointer() lexeme_pref = sc.next_lexeme() if lexeme_pref == lId.TMinus or lexeme_pref == lId.TPlus: #or lexeme_pref == lId.TMinusMinus or lexeme_pref == lId.TPlusPlus: if Interpreter.interpreter_flag: # Interpreter if lexeme_pref == lId.TMinus: Interpreter.sub({'value': 0, 'type': lId.TShort}, value_obj) # Interpreter self.a7(value_obj, interpreter_flag=Interpreter.interpreter_flag) else: sc.set_pointer(old_pointer) self.a7(value_obj, interpreter_flag=Interpreter.interpreter_flag)
def a4(self, value_obj, interpreter_flag=False): Interpreter.interpreter_flag = interpreter_flag self.a5(value_obj, interpreter_flag=Interpreter.interpreter_flag) sc = self.scanner old_pointer = sc.get_pointer() lexeme_plus_minus = sc.next_lexeme() while lexeme_plus_minus == lId.TPlus or lexeme_plus_minus == lId.TMinus: _value_obj = ValueObj() self.a5(_value_obj, interpreter_flag=Interpreter.interpreter_flag) if Interpreter.interpreter_flag: # interpreter if lexeme_plus_minus == lId.TPlus: Interpreter.sum(value_obj, _value_obj) else: Interpreter.sub(value_obj, _value_obj) # interpreter old_pointer = sc.get_pointer() lexeme_plus_minus = sc.next_lexeme() sc.set_pointer(old_pointer)