Tokens:
["int", "main", "(", ")", "{", "int", "tomas", ";", "tomas", "=", "2", ";", "return", "1", "+", "2", ";", "}"]
Begin validate subconstruct (type "Function")
Testing variant Integer (Loop = false) (Loopable = false)
  Validated token "int"
  Validated token "main"
  Validated token "("
  Validated token ")"
  Validated token "{"
  Begin validate subconstruct (type "StatementList")
  Testing variant StatementSequence (Loop = false) (Loopable = false)
    Determining need to loop construct of type Statement
    Testing Statement::ReturnExpression
      Failed to validate token "int". Expected "RETURN"
    Testing Statement::DeclareVariable
      Begin validate subconstruct (type "VariableDeclaration")
      Testing variant Variable (Loop = false) (Loopable = false)
        Validated token "int"
        Validated token "tomas"
        Determining need to continue. (TestingASSIGNMENT)
        ASSIGNMENT NOT validated. Breaking
      Success (variant "Variable")

      End validate subconstruct (variant "Variable")
      Validated token ";"
    Looping
    Determining need to loop construct of type Statement
    Testing Statement::ReturnExpression
      Failed to validate token "tomas". Expected "RETURN"
    Testing Statement::DeclareVariable
      Begin validate subconstruct (type "VariableDeclaration")
      Testing variant Variable (Loop = false) (Loopable = false)
        Failed to validate token "tomas". Expected "INT"
      Fail: no valid variants (variant "Variable")

      Subconstruct validation failed
    Testing Statement::StandaloneExpression
      Begin validate subconstruct (type "Expression")
      Testing variant LogicalOrExpressionSequence (Loop = false) (Loopable = false)
        Begin validate subconstruct (type "LogicalOrExpression")
        Testing variant LogicalAndExpressionSequence (Loop = false) (Loopable = false)
          Begin validate subconstruct (type "LogicalAndExpression")
          Testing variant EqualityExpressionSequence (Loop = false) (Loopable = false)
            Begin validate subconstruct (type "EqualityExpression")
            Testing variant RelationalExpressionSequence (Loop = false) (Loopable = false)
              Begin validate subconstruct (type "RelationalExpression")
              Testing variant AdditiveExpressionSequence (Loop = false) (Loopable = false)
                Begin validate subconstruct (type "AdditiveExpression")
                Testing variant TermSequence (Loop = false) (Loopable = true)
                  Begin validate subconstruct (type "Term")
                  Testing variant FactorSequence (Loop = false) (Loopable = true)
                    Begin validate subconstruct (type "Factor")
                    Testing variant LiteralInteger (Loop = false) (Loopable = false)
                      Failed to validate token "tomas". Expected "LITERAL_INTEGER"
                    Fail: no valid variants (variant "LiteralInteger")

                    Testing variant StandaloneVariable (Loop = false) (Loopable = false)
                      Begin validate subconstruct (type "VariableFactor")
                      Testing variant Variable (Loop = false) (Loopable = false)
                        Validated token "tomas"
                      Success (variant "Variable")

                      End validate subconstruct (variant "Variable")
                    Success (variant "StandaloneVariable")

                    End validate subconstruct (variant "StandaloneVariable")
                    Determining need to loop construct of type MultiplicationPriorityOperator
                    Testing operator MultiplicationPriorityOperator::Division
                      Failed to validate token "=". Expected "DIVISION"
                    Testing operator MultiplicationPriorityOperator::Multiplication
                      Failed to validate token "=". Expected "MULTIPLICATION"
                    Not looping
                  Success (variant "FactorSequence")

                  End validate subconstruct (variant "FactorSequence")
                  Determining need to loop construct of type AdditionPriorityOperator
                  Testing operator AdditionPriorityOperator::Subtraction
                    Failed to validate token "=". Expected "NEGATION"
                  Testing operator AdditionPriorityOperator::Addition
                    Failed to validate token "=". Expected "ADDITION"
                  Not looping
                Success (variant "TermSequence")

                End validate subconstruct (variant "TermSequence")
                Determining need to loop construct of type InequalityPriorityOperator
                Testing operator InequalityPriorityOperator::GreaterThanOrEqualTo
                  Failed to validate token "=". Expected "GREATER_THAN_OR_EQUAL_TO"
                Testing operator InequalityPriorityOperator::LessThan
                  Failed to validate token "=". Expected "LESS_THAN"
                Testing operator InequalityPriorityOperator::LessThanOrEqualTo
                  Failed to validate token "=". Expected "LESS_THAN_OR_EQUAL_TO"
                Testing operator InequalityPriorityOperator::GreaterThan
                  Failed to validate token "=". Expected "GREATER_THAN"
                Not looping
              Success (variant "AdditiveExpressionSequence")

              End validate subconstruct (variant "AdditiveExpressionSequence")
              Determining need to loop construct of type EqualityPriorityOperator
              Testing operator EqualityPriorityOperator::EqualTo
                Failed to validate token "=". Expected "EQUAL"
              Testing operator EqualityPriorityOperator::NotEqualTo
                Failed to validate token "=". Expected "NOT_EQUAL"
              Not looping
            Success (variant "RelationalExpressionSequence")

            End validate subconstruct (variant "RelationalExpressionSequence")
            Determining need to loop construct of type LogicalAndPriorityOperator
            Testing operator LogicalAndPriorityOperator::LogicalAnd
              Failed to validate token "=". Expected "LOGICAL_AND"
            Not looping
          Success (variant "EqualityExpressionSequence")

          End validate subconstruct (variant "EqualityExpressionSequence")
          Determining need to loop construct of type LogicalOrPriorityOperator
          Testing operator LogicalOrPriorityOperator::LogicalOr
            Failed to validate token "=". Expected "LOGICAL_OR"
          Not looping
        Success (variant "LogicalAndExpressionSequence")

        End validate subconstruct (variant "LogicalAndExpressionSequence")
      Success (variant "LogicalOrExpressionSequence")

      End validate subconstruct (variant "LogicalOrExpressionSequence")
      Failed to validate token "=". Expected "SEMICOLON"
    Not looping
  Success (variant "StatementSequence")

  End validate subconstruct (variant "StatementSequence")
  Failed to validate token "tomas". Expected "BRACE_CLOSE"
Fail: no valid variants (variant "Integer")

Subconstruct validation failed
Distinct lack of success
