예제 #1
0
        void Num()
        {
            int la0, la1;
            int dot = 0;

            // Line 181: ([.])?
            la0 = Src.LA0;
            if (la0 == '.')
            {
                dot = Src.MatchAny();
            }
            Src.MatchRange('0', '9');
            // Line 182: ([0-9])*
            for (;;)
            {
                la0 = Src.LA0;
                if (la0 >= '0' && la0 <= '9')
                {
                    Src.Skip();
                }
                else
                {
                    break;
                }
            }
            // Line 183: (&{dot == 0} [.] [0-9] ([0-9])*)?
            la0 = Src.LA0;
            if (la0 == '.')
            {
                if (dot == 0)
                {
                    la1 = Src.LA(1);
                    if (la1 >= '0' && la1 <= '9')
                    {
                        Src.Skip();
                        Src.Skip();
                        // Line 183: ([0-9])*
                        for (;;)
                        {
                            la0 = Src.LA0;
                            if (la0 >= '0' && la0 <= '9')
                            {
                                Src.Skip();
                            }
                            else
                            {
                                break;
                            }
                        }
                    }
                }
            }
                        #line 184 "Grammars.ecs"
            _tok.Value = double.Parse(Src.CharSource.Slice(_tok.StartIndex, Src.InputPosition - _tok.StartIndex).ToString());
                        #line default
        }