public override void visit(SyntaxTree.hex_constant _hex_constant)
 {
     expression_node en = null;
     if (_hex_constant.val <= Int32.MaxValue && _hex_constant.val >= Int32.MinValue)
         en = new int_const_node((int)_hex_constant.val, get_location(_hex_constant));
     else
         en = new long_const_node(_hex_constant.val, get_location(_hex_constant));
     return_value(en);
 }
 private void VisitLongConstNode(long_const_node expr)
 {
     bw.Write(expr.constant_value);
 }
 public override void visit(SyntaxTree.int64_const int64)
 {
     expression_node en = new long_const_node(int64.val, get_location(int64));
     switch (motivation_keeper.motivation)
     {
         case motivation.address_reciving: throw new CompilerInternalError("Addres reciving from constant"); break;
         case motivation.expression_evaluation: return_value(en); break;
         case motivation.semantic_node_reciving: return_semantic_value(en); break;
     }
     //return_value(en);
     return;
 }