Beispiel #1
0
        public override void Visit(AST_assert_statement assert_statement)
        {
            assert_statement.Expression.Accept(evaluateVisitor);
            bool assertion = evaluateVisitor.Value.BoolValue;

            if (assertion == false)
            {
                scanner.Error("Assertion error.",
                              assert_statement.Expression.Row,
                              assert_statement.Expression.Column);
            }
        }
Beispiel #2
0
        override public void Visit(AST_assert_statement assert_statement)
        {
            if (assert_statement != null)
            {
                base.Visit(assert_statement);

                if (assert_statement.Expression.DataType != bool_type)
                {
                    Error("Assert statement requires a bool type.", assert_statement.Expression);
                }
            }
        }
Beispiel #3
0
        private AST_assert_statement Parse_assert_statement(TokenKind followSet)
        {
            IncrementDepth();
            DebugPrint("assert_statement");

            AST_assert_statement assert_statement = null;

            Match(assert_Keyword);
            if (LookAheadToken().Kind == OpenParenthesis)
            {
                Match(OpenParenthesis);
                assert_statement = new AST_assert_statement(
                    Parse_expression(followSet | CloseParenthesis));
                if (LookAheadToken().Kind == CloseParenthesis)
                {
                    Match(CloseParenthesis);
                }
                else
                {
                    Error("')' expected, '" + LookAheadToken().ToString() + "' found.", LookAheadToken());
                    SkipUntilFollow(CloseParenthesis | followSet);
                    if (LookAheadToken().Kind == CloseParenthesis)
                    {
                        Match(CloseParenthesis);
                    }
                }
            }
            else
            {
                Error("'(' expected, '" + LookAheadToken().ToString() + "' found.", LookAheadToken());
                SkipUntilFollow(followSet);
            }

            DecrementDepth();

            return(assert_statement);
        }
Beispiel #4
0
 public virtual void Visit(AST_assert_statement assert_statement)
 {
     IncrementDepth();
     assert_statement.Expression.Accept(this);
     DecrementDepth();
 }