def perform_stack_action(self, stack: AutomatonStack, configuration: Configuration): MemberState.check_stack(stack) stack.add_data(stack.get_current_content()) MemberState.add_member_to_stack(stack) stack.remove_level() ExpressionEndState.add_function_to_stack(stack)
def perform_stack_action(self, stack: AutomatonStack, configuration: Configuration): current_content = stack.get_current_content() if not current_content: raise ParsingError('A variable name was expected!') stack.add_data(Argument(current_content)) stack.remove_level()
def perform_stack_action(self, stack: AutomatonStack, configuration: Configuration): current_string = stack.get_current_content() stack.add_data( MessageComponent(MessageComponentType.STRING, current_string)) stack.remove_level() stack.add_level()
def perform_stack_action(self, stack: AutomatonStack, configuration: Configuration): current_content = stack.get_current_content() if not current_content: raise ParsingError('Empty function name is not allowed!') stack.add_data(FunctionDeclaration(current_content)) stack.remove_level() stack.add_level()
def add_function_to_stack(stack: AutomatonStack): arguments = [] if not stack.data_stack: raise ParsingError('Detected a closing parantheses without an opening one') stack_content = stack.pop_data() while not isinstance(stack_content, FunctionDeclaration): arguments.insert(0, stack_content) if not stack.data_stack: raise ParsingError('Detected a closing parantheses without an opening one') stack_content = stack.pop_data() stack.add_data(stack_content.create_function(arguments))
def perform_stack_action(self, stack: AutomatonStack, configuration: Configuration): current_string = stack.get_current_content() stack.add_data(ConstantExpression(current_string)) stack.remove_level() stack.add_level()
def add_member_to_stack(stack: AutomatonStack): assert len(stack.data_stack) >= 2 member = stack.pop_data() variable = stack.pop_data() stack.add_data(MemberExpression(variable.name, member))
def perform_stack_action(self, stack: AutomatonStack, configuration: Configuration): variable = stack.pop_data() stack.add_data(FunctionDeclaration(variable.name))
def perform_stack_action(self, stack: AutomatonStack, configuration: Configuration): current_content = stack.get_current_content() stack.add_data(VariableExpression(current_content)) stack.remove_level() stack.add_level()
def add_constraint_to_stack(stack: AutomatonStack): value = stack.pop_data() variable = stack.pop_data() stack.add_data(Constraint(variable, value))
def perform_stack_action(self, stack: AutomatonStack, configuration: Configuration): stack.add_data(VariableExpression(stack.get_current_content())) stack.remove_level() AcceptState.check_stack(stack)
def perform_stack_action(self, stack: AutomatonStack, configuration: Configuration): stack.add_data(FunctionDeclaration(stack.get_current_content())) stack.remove_level() stack.add_level()