public const_node create_int_const(string text, SourceContext sc, System.Globalization.NumberStyles NumberStyles)
        {
            //таблица целых констант на уровне синтаксиса
            //      не может быть - 0 +
            // 32--------16----8----|----8----16--------32----------------64(bits)
            // [  int64  )[       int32       ](  int64 ](      uint64     ]
            if (NumberStyles == System.Globalization.NumberStyles.HexNumber)
            {
                text = text.Substring(1);
            }
            const_node cn = new int32_const();

            if (text.Length < 8)
            {
                (cn as int32_const).val = Int32.Parse(text, NumberStyles);
            }
            else
            {
                try
                {
                    UInt64 uint64 = UInt64.Parse(text, NumberStyles);
                    if (uint64 <= Int32.MaxValue)
                    {
                        (cn as int32_const).val = (Int32)uint64;
                    }
                    else
                    if (uint64 <= Int64.MaxValue)
                    {
                        cn = new int64_const((Int64)uint64);
                    }
                    else
                    {
                        cn = new uint64_const(uint64);
                    }
                }
                catch (Exception)
                {
                    if (NumberStyles == System.Globalization.NumberStyles.HexNumber)
                    {
                        errors.Add(new BadHex(CurrentFileName, sc, null));
                    }
                    else
                    {
                        errors.Add(new BadInt(CurrentFileName, sc, null));
                    }
                }
            }
            cn.source_context = sc;
            return(cn);
        }
Esempio n. 2
0
        public virtual const_node create_int_const(string text, LexLocation loc, System.Globalization.NumberStyles NumberStyles)
        {
            if (NumberStyles == System.Globalization.NumberStyles.HexNumber)
            {
                text = text.Substring(1);
            }
            const_node cn = new int32_const();

            if (text.Length < 8)
            {
                (cn as int32_const).val = Int32.Parse(text, System.Globalization.NumberStyles.Integer);
            }
            else
            {
                try
                {
                    UInt64 uint64 = UInt64.Parse(text, System.Globalization.NumberStyles.Integer);
                    if (uint64 <= Int32.MaxValue)
                    {
                        (cn as int32_const).val = (Int32)uint64;
                    }
                    else
                    if (uint64 <= Int64.MaxValue)
                    {
                        cn = new int64_const((Int64)uint64);
                    }
                    else
                    {
                        cn = new uint64_const(uint64);
                    }
                }
                catch (Exception)
                {
                    if (NumberStyles == System.Globalization.NumberStyles.HexNumber)
                    {
                        GPPGParser.errors.Add(new BadHex(GPPGParser.current_file_name, GetTokenSourceContext(loc), new syntax_tree_node()));
                    }
                    else
                    {
                        GPPGParser.errors.Add(new BadInt(GPPGParser.current_file_name, GetTokenSourceContext(loc), new syntax_tree_node()));
                    }
                }
            }
            cn.source_context = GetTokenSourceContext(loc);
            return(cn);
        }
Esempio n. 3
0
 public override void visit(int64_const _int_const)
 {
     text = "Value: " + _int_const.val.ToString();
 }
Esempio n. 4
0
 public virtual void visit(int64_const _int64_const)
 {
     DefaultVisit(_int64_const);
 }
Esempio n. 5
0
		public override void visit(int64_const _int64_const)
		{
			DefaultVisit(_int64_const);
			pre_do_visit(_int64_const);
			post_do_visit(_int64_const);
		}
Esempio n. 6
0
		public virtual void post_do_visit(int64_const _int64_const)
		{
		}
Esempio n. 7
0
 public virtual void visit(int64_const _int64_const)
 {
 }
Esempio n. 8
0
 public override void visit(int64_const _int64_const)
 {
     AddPossibleComments(_int64_const, true, true);
 }
Esempio n. 9
0
		public virtual void visit(int64_const _int64_const)
		{
		}
		public virtual void visit(int64_const _int64_const)
		{
			DefaultVisit(_int64_const);
		}
Esempio n. 11
0
 public override void visit(int64_const _int_const)
 {
 }
Esempio n. 12
0
		public override void visit(int64_const _int64_const)
		{
			executer.visit(_int64_const);
			if (_int64_const.attributes != null)
				this.visit((dynamic)_int64_const.attributes);
		}