Example #1
0
        private void Expr(int reg, ref VarType type)
        {
            SimpleExpr(reg, ref type);
            switch (Tokens[currentToken].Type)
            {
            case TokenType.Less:
            case TokenType.Greater:
            case TokenType.GreaterEqual:
            case TokenType.LessEqual:
            case TokenType.NotEqual:
            case TokenType.Equal:
                VarType tType = VarType.Invalid;
                AdvanceToken();
                SimpleExpr(reg, ref tType);
                if (tType == type)
                {
                    type = VarType.Bool;
                }
                else
                {
                    WriteErrorLine("Invalid Type Operation for expression", Tokens[currentToken]);
                }
                assembler.EmitCompare(Tokens[currentToken].Type);
                break;

            default:
                //not a comparative token, do nothing
                break;
            }
        }