public void write_bool_const(bool_const _bool_const) { write_const_node(_bool_const); bw.Write(_bool_const.val); }
public override void visit(bool_const _bool_const) { //throw new NotImplementedException(); }
public void visit(bool_const _bool_const) { bw.Write((Int16)9); write_bool_const(_bool_const); }
/////////////////////////////////////////////////////////////////////////////// /////////////////////////////////////////////////////////////////////////////// //CreateTerminalObject /////////////////////////////////////////////////////////////////////////////// /////////////////////////////////////////////////////////////////////////////// private Object CreateTerminalObject(int TokenSymbolIndex) { switch (TokenSymbolIndex) { case (int)SymbolConstants.SYMBOL_EOF: //(EOF) return null; case (int)SymbolConstants.SYMBOL_ERROR: //(Error) return null; case (int)SymbolConstants.SYMBOL_WHITESPACE: //(Whitespace) return null; case (int)SymbolConstants.SYMBOL_COMMENTLINE: //(Comment Line) return null; case (int)SymbolConstants.SYMBOL_TK_ALG: //'tk_alg' { token_info _token_info = new token_info(LRParser.TokenText); _token_info.source_context = parsertools.GetTokenSourceContext(); return _token_info; } case (int)SymbolConstants.SYMBOL_TK_AND: //'tk_and' { op_type_node _op_type_node = new op_type_node(Operators.LogicalAND); _op_type_node.source_context = parsertools.GetTokenSourceContext(); return _op_type_node; } case (int)SymbolConstants.SYMBOL_TK_ARG: //'tk_arg' { token_info _token_info = new token_info(LRParser.TokenText); _token_info.source_context = parsertools.GetTokenSourceContext(); return _token_info; } case (int)SymbolConstants.SYMBOL_TK_ARRAY: //'tk_array' { token_info _token_info = new token_info(LRParser.TokenText); _token_info.source_context = parsertools.GetTokenSourceContext(); return _token_info; } case (int)SymbolConstants.SYMBOL_TK_ASSERT: //'tk_assert' { token_info _token_info = new token_info(LRParser.TokenText); _token_info.source_context = parsertools.GetTokenSourceContext(); return _token_info; } case (int)SymbolConstants.SYMBOL_TK_ASSIGN: //'tk_Assign' { op_type_node _op_type_node = new op_type_node(Operators.Assignment); _op_type_node.source_context = parsertools.GetTokenSourceContext(); return _op_type_node; } case (int)SymbolConstants.SYMBOL_TK_BEGIN: //'tk_begin' { token_info _token_info = new token_info(LRParser.TokenText); _token_info.source_context = parsertools.GetTokenSourceContext(); return _token_info; } case (int)SymbolConstants.SYMBOL_TK_BEGIN_CYCLE: //'tk_begin_cycle' { token_info _token_info = new token_info(LRParser.TokenText); _token_info.source_context = parsertools.GetTokenSourceContext(); return _token_info; } case (int)SymbolConstants.SYMBOL_TK_BOOLEAN_TYPE: //'tk_boolean_type' { token_info _token_info = new token_info(LRParser.TokenText); _token_info.source_context = parsertools.GetTokenSourceContext(); return _token_info; } case (int)SymbolConstants.SYMBOL_TK_CASE: //'tk_case' { token_info _token_info = new token_info(LRParser.TokenText); _token_info.source_context = parsertools.GetTokenSourceContext(); return _token_info; } case (int)SymbolConstants.SYMBOL_TK_CASE_V: //'tk_case_v' { token_info _token_info = new token_info(LRParser.TokenText); _token_info.source_context = parsertools.GetTokenSourceContext(); return _token_info; } case (int)SymbolConstants.SYMBOL_TK_CHAR: //'tk_char' return parsertools.create_char_const(this); case (int)SymbolConstants.SYMBOL_TK_CHAR_TYPE: //'tk_char_type' { token_info _token_info = new token_info(LRParser.TokenText); _token_info.source_context = parsertools.GetTokenSourceContext(); return _token_info; } case (int)SymbolConstants.SYMBOL_TK_COLON: //'tk_Colon' { token_info _token_info = new token_info(LRParser.TokenText); _token_info.source_context = parsertools.GetTokenSourceContext(); return _token_info; } case (int)SymbolConstants.SYMBOL_TK_COMMA: //'tk_Comma' { token_info _token_info = new token_info(LRParser.TokenText); _token_info.source_context = parsertools.GetTokenSourceContext(); return _token_info; } case (int)SymbolConstants.SYMBOL_TK_DIV: //'tk_Div' { op_type_node _op_type_node = new op_type_node(Operators.Division); _op_type_node.source_context = parsertools.GetTokenSourceContext(); return _op_type_node; } case (int)SymbolConstants.SYMBOL_TK_DOT: //'tk_Dot' { token_info _token_info = new token_info(LRParser.TokenText); _token_info.source_context = parsertools.GetTokenSourceContext(); return _token_info; } case (int)SymbolConstants.SYMBOL_TK_ELSE: //'tk_else' { token_info _token_info = new token_info(LRParser.TokenText); _token_info.source_context = parsertools.GetTokenSourceContext(); return _token_info; } case (int)SymbolConstants.SYMBOL_TK_END: //'tk_end' { token_info _token_info = new token_info(LRParser.TokenText); _token_info.source_context = parsertools.GetTokenSourceContext(); return _token_info; } case (int)SymbolConstants.SYMBOL_TK_END_ALL: //'tk_end_all' { token_info _token_info = new token_info(LRParser.TokenText); _token_info.source_context = parsertools.GetTokenSourceContext(); return _token_info; } case (int)SymbolConstants.SYMBOL_TK_END_CYCLE: //'tk_end_cycle' { token_info _token_info = new token_info(LRParser.TokenText); _token_info.source_context = parsertools.GetTokenSourceContext(); return _token_info; } case (int)SymbolConstants.SYMBOL_TK_EOL: //'tk_eol' { token_info _token_info = new token_info(LRParser.TokenText); _token_info.source_context = parsertools.GetTokenSourceContext(); return _token_info; } case (int)SymbolConstants.SYMBOL_TK_EQUAL: //'tk_Equal' { op_type_node _op_type_node = new op_type_node(Operators.Equal); _op_type_node.source_context = parsertools.GetTokenSourceContext(); return _op_type_node; } case (int)SymbolConstants.SYMBOL_TK_FALSE: //'tk_false' bool_const _bool_const = new bool_const(false); _bool_const.source_context = parsertools.GetTokenSourceContext(); return _bool_const; case (int)SymbolConstants.SYMBOL_TK_FOR: //'tk_for' { token_info _token_info = new token_info(LRParser.TokenText); _token_info.source_context = parsertools.GetTokenSourceContext(); return _token_info; } case (int)SymbolConstants.SYMBOL_TK_FROM: //'tk_from' { token_info _token_info = new token_info(LRParser.TokenText); _token_info.source_context = parsertools.GetTokenSourceContext(); return _token_info; } case (int)SymbolConstants.SYMBOL_TK_FUNC_VAL: //'tk_func_val' { token_info _token_info = new token_info(LRParser.TokenText); _token_info.source_context = parsertools.GetTokenSourceContext(); return _token_info; } case (int)SymbolConstants.SYMBOL_TK_GREATER: //'tk_Greater' { op_type_node _op_type_node = new op_type_node(Operators.Greater); _op_type_node.source_context = parsertools.GetTokenSourceContext(); return _op_type_node; } case (int)SymbolConstants.SYMBOL_TK_GREATEREQUAL: //'tk_GreaterEqual' { op_type_node _op_type_node = new op_type_node(Operators.GreaterEqual); _op_type_node.source_context = parsertools.GetTokenSourceContext(); return _op_type_node; } case (int)SymbolConstants.SYMBOL_TK_IDENTIFIER: //'tk_Identifier' return parsertools.create_ident(this); case (int)SymbolConstants.SYMBOL_TK_IF: //'tk_if' { token_info _token_info = new token_info(LRParser.TokenText); _token_info.source_context = parsertools.GetTokenSourceContext(); return _token_info; } case (int)SymbolConstants.SYMBOL_TK_INTEGER: //'tk_integer' return parsertools.create_int_const(this); case (int)SymbolConstants.SYMBOL_TK_INTEGER_TYPE: //'tk_integer_type' { token_info _token_info = new token_info(LRParser.TokenText); _token_info.source_context = parsertools.GetTokenSourceContext(); return _token_info; } case (int)SymbolConstants.SYMBOL_TK_ISP: //'tk_isp' { token_info _token_info = new token_info(LRParser.TokenText); _token_info.source_context = parsertools.GetTokenSourceContext(); return _token_info; } case (int)SymbolConstants.SYMBOL_TK_LOWER: //'tk_Lower' { op_type_node _op_type_node = new op_type_node(Operators.Less); _op_type_node.source_context = parsertools.GetTokenSourceContext(); return _op_type_node; } case (int)SymbolConstants.SYMBOL_TK_LOWEREQUAL: //'tk_LowerEqual' { op_type_node _op_type_node = new op_type_node(Operators.LessEqual); _op_type_node.source_context = parsertools.GetTokenSourceContext(); return _op_type_node; } case (int)SymbolConstants.SYMBOL_TK_MINUS: //'tk_Minus' { op_type_node _op_type_node = new op_type_node(Operators.Minus); _op_type_node.source_context = parsertools.GetTokenSourceContext(); return _op_type_node; } case (int)SymbolConstants.SYMBOL_TK_MULT: //'tk_Mult' { op_type_node _op_type_node = new op_type_node(Operators.Multiplication); _op_type_node.source_context = parsertools.GetTokenSourceContext(); return _op_type_node; } case (int)SymbolConstants.SYMBOL_TK_NEWLINE: //'tk_NewLine' { token_info _token_info = new token_info(LRParser.TokenText); _token_info.source_context = parsertools.GetTokenSourceContext(); return _token_info; } case (int)SymbolConstants.SYMBOL_TK_NOT: //'tk_not' { op_type_node _op_type_node = new op_type_node(Operators.LogicalNOT); _op_type_node.source_context = parsertools.GetTokenSourceContext(); return _op_type_node; } case (int)SymbolConstants.SYMBOL_TK_NOTEQUAL: //'tk_NotEqual' { op_type_node _op_type_node = new op_type_node(Operators.NotEqual); _op_type_node.source_context = parsertools.GetTokenSourceContext(); return _op_type_node; } case (int)SymbolConstants.SYMBOL_TK_OR: //'tk_or' { op_type_node _op_type_node = new op_type_node(Operators.LogicalOR); _op_type_node.source_context = parsertools.GetTokenSourceContext(); return _op_type_node; } case (int)SymbolConstants.SYMBOL_TK_PLUS: //'tk_Plus' { op_type_node _op_type_node = new op_type_node(Operators.Plus); _op_type_node.source_context = parsertools.GetTokenSourceContext(); return _op_type_node; } case (int)SymbolConstants.SYMBOL_TK_POWER: //'tk_Power' { // make it! op_type_node _op_type_node = new op_type_node(Operators.Undefined); _op_type_node.source_context = parsertools.GetTokenSourceContext(); return _op_type_node; } case (int)SymbolConstants.SYMBOL_TK_RAZ: //'tk_raz' { token_info _token_info = new token_info(LRParser.TokenText); _token_info.source_context = parsertools.GetTokenSourceContext(); return _token_info; } case (int)SymbolConstants.SYMBOL_TK_READ: //'tk_read' { token_info _token_info = new token_info(LRParser.TokenText); _token_info.source_context = parsertools.GetTokenSourceContext(); return _token_info; } case (int)SymbolConstants.SYMBOL_TK_REAL: //'tk_real' return parsertools.create_double_const(this); case (int)SymbolConstants.SYMBOL_TK_REAL_TYPE: //'tk_real_type' { token_info _token_info = new token_info(LRParser.TokenText); _token_info.source_context = parsertools.GetTokenSourceContext(); return _token_info; } case (int)SymbolConstants.SYMBOL_TK_ROUNDCLOSE: //'tk_RoundClose' { token_info _token_info = new token_info(LRParser.TokenText); _token_info.source_context = parsertools.GetTokenSourceContext(); return _token_info; } case (int)SymbolConstants.SYMBOL_TK_ROUNDOPEN: //'tk_RoundOpen' { token_info _token_info = new token_info(LRParser.TokenText); _token_info.source_context = parsertools.GetTokenSourceContext(); return _token_info; } case (int)SymbolConstants.SYMBOL_TK_SEMICOLON: //'tk_SemiColon' { token_info _token_info = new token_info(LRParser.TokenText); _token_info.source_context = parsertools.GetTokenSourceContext(); return _token_info; } case (int)SymbolConstants.SYMBOL_TK_SQUARECLOSE: //'tk_SquareClose' { token_info _token_info = new token_info(LRParser.TokenText); _token_info.source_context = parsertools.GetTokenSourceContext(); return _token_info; } case (int)SymbolConstants.SYMBOL_TK_SQUAREOPEN: //'tk_SquareOpen' { token_info _token_info = new token_info(LRParser.TokenText); _token_info.source_context = parsertools.GetTokenSourceContext(); return _token_info; } case (int)SymbolConstants.SYMBOL_TK_STRING_TYPE: //'tk_string_type' { token_info _token_info = new token_info(LRParser.TokenText); _token_info.source_context = parsertools.GetTokenSourceContext(); return _token_info; } case (int)SymbolConstants.SYMBOL_TK_STRINGLITERAL: //'tk_StringLiteral' return parsertools.create_string_const(this); case (int)SymbolConstants.SYMBOL_TK_THEN: //'tk_then' { token_info _token_info = new token_info(LRParser.TokenText); _token_info.source_context = parsertools.GetTokenSourceContext(); return _token_info; } case (int)SymbolConstants.SYMBOL_TK_TO: //'tk_to' { token_info _token_info = new token_info(LRParser.TokenText); _token_info.source_context = parsertools.GetTokenSourceContext(); return _token_info; } case (int)SymbolConstants.SYMBOL_TK_TRUE: //'tk_true' bool_const _true_const = new bool_const(true); _true_const.source_context = parsertools.GetTokenSourceContext(); return _true_const; case (int)SymbolConstants.SYMBOL_TK_USES: //'tk_uses' { token_info _token_info = new token_info(LRParser.TokenText); _token_info.source_context = parsertools.GetTokenSourceContext(); return _token_info; } case (int)SymbolConstants.SYMBOL_TK_VAR: //'tk_var' { token_info _token_info = new token_info(LRParser.TokenText); _token_info.source_context = parsertools.GetTokenSourceContext(); return _token_info; } case (int)SymbolConstants.SYMBOL_TK_WHILE: //'tk_while' { token_info _token_info = new token_info(LRParser.TokenText); _token_info.source_context = parsertools.GetTokenSourceContext(); return _token_info; } case (int)SymbolConstants.SYMBOL_TK_WRITE: //'tk_write' { token_info _token_info = new token_info(LRParser.TokenText); _token_info.source_context = parsertools.GetTokenSourceContext(); return _token_info; } case (int)SymbolConstants.SYMBOL_ADDEXP: //<Add Exp> //TERMINAL:Add Exp return null; //ENDTERMINAL case (int)SymbolConstants.SYMBOL_ARRAY_LIST1: //<Array_list1> //TERMINAL:Array_list1 return null; //ENDTERMINAL case (int)SymbolConstants.SYMBOL_ARRAY_LIST2: //<Array_list2> //TERMINAL:Array_list2 return null; //ENDTERMINAL case (int)SymbolConstants.SYMBOL_CASE_VARIANT: //<Case_variant> //TERMINAL:Case_variant return null; //ENDTERMINAL case (int)SymbolConstants.SYMBOL_CASE_VARIANT_LIST: //<Case_variant_list> //TERMINAL:Case_variant_list return null; //ENDTERMINAL case (int)SymbolConstants.SYMBOL_DECLARATIONS: //<Declarations> //TERMINAL:Declarations return null; //ENDTERMINAL case (int)SymbolConstants.SYMBOL_DIAP: //<Diap> //TERMINAL:Diap return null; //ENDTERMINAL case (int)SymbolConstants.SYMBOL_DIAP_LIST: //<Diap_list> //TERMINAL:Diap_list return null; //ENDTERMINAL case (int)SymbolConstants.SYMBOL_EXPRESSION: //<Expression> //TERMINAL:Expression return null; //ENDTERMINAL case (int)SymbolConstants.SYMBOL_FACT_LIST: //<Fact_list> //TERMINAL:Fact_list return null; //ENDTERMINAL case (int)SymbolConstants.SYMBOL_FORMAL_LIST: //<Formal_list> //TERMINAL:Formal_list return null; //ENDTERMINAL case (int)SymbolConstants.SYMBOL_FORMAL_PARAMETER1: //<Formal_parameter1> //TERMINAL:Formal_parameter1 return null; //ENDTERMINAL case (int)SymbolConstants.SYMBOL_FORMAL_PARAMETER2: //<Formal_Parameter2> //TERMINAL:Formal_Parameter2 return null; //ENDTERMINAL case (int)SymbolConstants.SYMBOL_FORMAL_TYPE_LIST1: //<Formal_type_list1> //TERMINAL:Formal_type_list1 return null; //ENDTERMINAL case (int)SymbolConstants.SYMBOL_FORMAL_TYPE_LIST2: //<Formal_type_list2> //TERMINAL:Formal_type_list2 return null; //ENDTERMINAL case (int)SymbolConstants.SYMBOL_FREE_OPERATOR: //<Free_operator> //TERMINAL:Free_operator return null; //ENDTERMINAL case (int)SymbolConstants.SYMBOL_FUNCTION: //<Function> //TERMINAL:Function return null; //ENDTERMINAL case (int)SymbolConstants.SYMBOL_GLOBAL_DECL_LIST: //<Global_decl_list> //TERMINAL:Global_decl_list return null; //ENDTERMINAL case (int)SymbolConstants.SYMBOL_GLOBAL_PART: //<Global_part> //TERMINAL:Global_part return null; //ENDTERMINAL case (int)SymbolConstants.SYMBOL_GLOBAL_VARS: //<Global_vars> //TERMINAL:Global_vars return null; //ENDTERMINAL case (int)SymbolConstants.SYMBOL_ID_LIST1: //<Id_list1> //TERMINAL:Id_list1 return null; //ENDTERMINAL case (int)SymbolConstants.SYMBOL_ID_LIST2: //<Id_list2> //TERMINAL:Id_list2 return null; //ENDTERMINAL case (int)SymbolConstants.SYMBOL_INITIALIZATION: //<Initialization> //TERMINAL:Initialization return null; //ENDTERMINAL case (int)SymbolConstants.SYMBOL_LIST_OF_EXPRESSIONS: //<List_of_expressions> //TERMINAL:List_of_expressions return null; //ENDTERMINAL case (int)SymbolConstants.SYMBOL_MULTEXP: //<Mult Exp> //TERMINAL:Mult Exp return null; //ENDTERMINAL case (int)SymbolConstants.SYMBOL_NEGATEEXP: //<Negate Exp> //TERMINAL:Negate Exp return null; //ENDTERMINAL case (int)SymbolConstants.SYMBOL_POWEREXP: //<Power Exp> //TERMINAL:Power Exp return null; //ENDTERMINAL case (int)SymbolConstants.SYMBOL_PROCEDURE: //<Procedure> //TERMINAL:Procedure return null; //ENDTERMINAL case (int)SymbolConstants.SYMBOL_PROGRAM: //<Program> //TERMINAL:Program return null; //ENDTERMINAL case (int)SymbolConstants.SYMBOL_SEPARATOR: //<Separator> //TERMINAL:Separator return null; //ENDTERMINAL case (int)SymbolConstants.SYMBOL_SEPARATORS: //<Separators> //TERMINAL:Separators return null; //ENDTERMINAL case (int)SymbolConstants.SYMBOL_SEPARATORSOPT: //<Separators Opt> //TERMINAL:Separators Opt return null; //ENDTERMINAL case (int)SymbolConstants.SYMBOL_STATEMENT: //<Statement> //TERMINAL:Statement return null; //ENDTERMINAL case (int)SymbolConstants.SYMBOL_STATEMENTS: //<Statements> //TERMINAL:Statements return null; //ENDTERMINAL case (int)SymbolConstants.SYMBOL_SUB_DECLARATIONS: //<Sub_declarations> //TERMINAL:Sub_declarations return null; //ENDTERMINAL case (int)SymbolConstants.SYMBOL_TYPE: //<Type> //TERMINAL:Type return null; //ENDTERMINAL case (int)SymbolConstants.SYMBOL_USES_UNITS: //<Uses_units> //TERMINAL:Uses_units return null; //ENDTERMINAL case (int)SymbolConstants.SYMBOL_VALUE: //<Value> //TERMINAL:Value return null; //ENDTERMINAL case (int)SymbolConstants.SYMBOL_VAR_DECL_LIST1: //<Var_decl_list1> //TERMINAL:Var_decl_list1 return null; //ENDTERMINAL case (int)SymbolConstants.SYMBOL_VAR_DECL_LIST2: //<Var_decl_list2> //TERMINAL:Var_decl_list2 return null; //ENDTERMINAL case (int)SymbolConstants.SYMBOL_VAR_DECLARATIONS1: //<Var_declarations1> //TERMINAL:Var_declarations1 return null; //ENDTERMINAL case (int)SymbolConstants.SYMBOL_VAR_DECLARATIONS2: //<Var_declarations2> //TERMINAL:Var_declarations2 return null; //ENDTERMINAL } throw new SymbolException("Unknown symbol"); }
public override void visit(bool_const _bool_const) { returned_scope = TypeTable.bool_type;//entry_scope.FindName(PascalABCCompiler.TreeConverter.compiler_string_consts.bool_type_name); cnst_val.prim_val = _bool_const.val; }
public virtual bool_const create_bool_const(bool val,LexLocation loc) { bool_const bc = new bool_const(val); bc.source_context = GetTokenSourceContext(loc); return bc; }
public override void visit(bool_const _bool_const) { returned_scope = new ElementScope(TypeTable.bool_type); }
public void visit(bool_const _bool_const) { read_bool_const(_bool_const); }
public void read_bool_const(bool_const _bool_const) { read_const_node(_bool_const); _bool_const.val = br.ReadBoolean(); }
public override void visit(bool_const _bool_const) { WriteNode(_bool_const); }
public override void visit(bool_const _bool_const) { }
public override void Exit(syntax_tree_node st) { bracket_expr bre = st as bracket_expr; if (bre != null) { if (bre.expr is int32_const) Replace(st, bre.expr); } bin_expr vs = st as bin_expr; if (vs != null) { if (vs.left is int32_const && vs.right is int32_const) { var a = vs.left as int32_const; var b = vs.right as int32_const; var op = vs.operation_type; syntax_tree_node res; switch (op) { case Operators.Plus: res = new int32_const(a.val + b.val); break; case Operators.Minus: res = new int32_const(a.val - b.val); break; case Operators.Multiplication: res = new int32_const(a.val * b.val); break; case Operators.Division: res = new double_const((double)a.val / b.val); break; case Operators.Greater: res = new bool_const(a.val > b.val); break; case Operators.Less: res = new bool_const(a.val < b.val); break; case Operators.GreaterEqual: res = new bool_const(a.val >= b.val); break; case Operators.LessEqual: res = new bool_const(a.val <= b.val); break; default: res = vs; break; } Replace(vs, res); } if (vs.left is int32_const && vs.right is double_const || vs.right is int32_const && vs.left is double_const || vs.left is double_const && vs.right is double_const) { double x,y; if (vs.left is int32_const) x = (vs.left as int32_const).val; else x = (vs.left as double_const).val; if (vs.right is int32_const) y = (vs.right as int32_const).val; else y = (vs.right as double_const).val; var op = vs.operation_type; syntax_tree_node res; switch (op) { case Operators.Plus: res = new double_const(x + y); break; case Operators.Minus: res = new double_const(x - y); break; case Operators.Multiplication: res = new double_const(x * y); break; case Operators.Division: res = new double_const(x / y); break; case Operators.Greater: res = new bool_const(x > y); break; case Operators.Less: res = new bool_const(x < y); break; case Operators.GreaterEqual: res = new bool_const(x >= y); break; case Operators.LessEqual: res = new bool_const(x <= y); break; default: res = vs; break; } Replace(vs, res); } } base.Exit(st); // это обязательно! }
public void CompareInternal(bool_const left, bool_const right) { if (left == null && right != null || left != null && right == null) throw_not_equal(left, right); if (left != null && right != null) { if (left.val != right.val) throw_not_equal(left, right); } }
public override void visit(bool_const _bool_const) { RetValue val = new RetValue(); val.prim_val = _bool_const.val; names.Add(_bool_const.val.ToString()); eval_stack.Push(val); }
public override void visit(bool_const _bool_const) { AddPossibleComments(_bool_const, true, true); }
public override void visit(bool_const _bool_const) { text="Value: "+_bool_const.val.ToString(); }