Example #1
0
    def update_show_condition_on_change(self, changed_widget):
        changed_question = self.find_question_of_widget(changed_widget)
        changed_question.answer = BooleanNode(Position(0, 0), TypeBoolean, changed_question.widget.value())

        for question in self.block:
            visitor = ExpressionEvaluator(self)
            visitor.visit(question.show_condition)

            if question.show_condition.value:
                question.widget.show()
                question.widget_label.show()
            else:
                question.widget.hide()
                question.widget_label.hide()
Example #2
0
 def p_float(p):
     """expression : FLOAT"""
     p[0] = DecimalNode(Position(p.lineno(1), p.lexpos(1)), TypeDecimal, p[1])
Example #3
0
 def p_number(p):
     """expression : NUMBER"""
     p[0] = IntegerNode(Position(p.lineno(1), p.lexpos(1)), TypeInteger, p[1])
Example #4
0
 def p_greater_than(p):
     """expression : expression GT expression"""
     p[0] = GreaterThanOperatorNode(Position(p.lineno(2), p.lexpos(2)), TypeBoolean, p[1], p[3], None)
Example #5
0
 def p_greater_equals(p):
     """expression : expression GE expression"""
     p[0] = GreaterEqualsOperatorNode(Position(p.lineno(2), p.lexpos(2)), TypeBoolean, p[1], p[3], None)
Example #6
0
 def p_less_than(p):
     """expression : expression LT expression"""
     p[0] = LessThanOperatorNode(Position(p.lineno(2), p.lexpos(2)), TypeBoolean, p[1], p[3], None)
Example #7
0
    def visit(self, node):
        self.form = Form(node.identifier)
        self.condition = BooleanNode(Position(0, 0), TypeBoolean, True)

        for child in node.block:
            child.accept(self)
Example #8
0
 def p_question_computed(p):
     """question : QUESTION VAR COLON type ASSIGN expression"""
     p[0] = QuestionNode(Position(p.lineno(1), p.lexpos(1)), p[1], p[2], p[4], p[6])
Example #9
0
 def p_times(p):
     """expression : expression TIMES expression"""
     p[0] = MultiplicationOperatorNode(Position(p.lineno(2), p.lexpos(2)), TypeUndefined, p[1], p[3], None)
Example #10
0
 def p_minus(p):
     """expression : expression MINUS expression"""
     p[0] = SubtractionOperatorNode(Position(p.lineno(2), p.lexpos(2)), TypeUndefined, p[1], p[3], None)
Example #11
0
 def p_plus(p):
     """expression : expression PLUS expression"""
     p[0] = AdditionOperatorNode(Position(p.lineno(2), p.lexpos(2)), TypeUndefined, p[1], p[3], None)
Example #12
0
 def p_or(p):
     """expression : expression OR expression"""
     p[0] = OrOperatorNode(Position(p.lineno(2), p.lexpos(2)), TypeBoolean, p[1], p[3], None)
Example #13
0
 def p_and(p):
     """expression : expression AND expression"""
     p[0] = AndOperatorNode(Position(p.lineno(2), p.lexpos(2)), TypeBoolean, p[1], p[3], None)
Example #14
0
 def p_not(p):
     """expression : NOT expression"""
     p[0] = NegationOperatorNode(Position(p.lineno(1), p.lexpos(1)), TypeBoolean, p[2], None)
Example #15
0
 def p_variable(p):
     """expression : VAR"""
     p[0] = VariableNode(Position(p.lineno(1), p.lexpos(1)), TypeUndefined, p[1], None)
Example #16
0
 def p_form(p):
     """form : FORM VAR LBRACKET statements RBRACKET"""
     p[0] = FormNode(Position(p.lineno(1), p.lexpos(1)), p[4], p[2])
Example #17
0
 def p_question(p):
     """question : QUESTION VAR COLON type"""
     p[0] = QuestionNode(Position(p.lineno(1), p.lexpos(1)), p[1], p[2], p[4], UndefinedNode(Position(0, 0), TypeUndefined, None))
Example #18
0
 def p_divide(p):
     """expression : expression DIVIDE expression"""
     p[0] = DivisionOperatorNode(Position(p.lineno(2), p.lexpos(2)), TypeUndefined, p[1], p[3], None)
Example #19
0
 def p_if(p):
     """if : IF LPAREN expression RPAREN LBRACKET statements RBRACKET"""
     p[0] = IfNode(Position(p.lineno(1), p.lexpos(1)), p[6], p[3])
Example #20
0
 def p_less_equals(p):
     """expression : expression LE expression"""
     p[0] = LessEqualsOperatorNode(Position(p.lineno(2), p.lexpos(2)), TypeBoolean, p[1], p[3], None)