コード例 #1
0
        public static List <Token> LexWeak(string text)
        {
            // item 475
            Init();
            var lexer = new LexerMachine();

            foreach (char c in text)
            {
                // item 480
                if ((c == '_') || (Char.IsLetter(c)))
                {
                    // item 488
                    lexer.OnMessage(
                        LexerMachine.LetterMessage,
                        c
                        );
                }
                else
                {
                    // item 485
                    if (Char.IsDigit(c))
                    {
                        // item 495
                        lexer.OnMessage(
                            LexerMachine.DigitMessage,
                            c
                            );
                    }
                    else
                    {
                        // item 490
                        if (IsOperator(c))
                        {
                            // item 496
                            lexer.OnMessage(
                                LexerMachine.OperatorMessage,
                                c
                                );
                        }
                        else
                        {
                            // item 497
                            lexer.OnMessage(
                                LexerMachine.WhitespaceMessage,
                                ' '
                                );
                        }
                    }
                }
            }
            // item 498
            lexer.OnMessage(
                LexerMachine.WhitespaceMessage,
                ' '
                );
            // item 478
            return(lexer.Tokens);
        }
コード例 #2
0
        public static List <Token> LexWeak(string text)
        {
            Init();
            var lexer = new LexerMachine();

            foreach (char c in text)
            {
                if ((c == '_') || (Char.IsLetter(c)))
                {
                    lexer.OnMessage(
                        LexerMachine.LetterMessage,
                        c
                        );
                }
                else
                {
                    if (Char.IsDigit(c))
                    {
                        lexer.OnMessage(
                            LexerMachine.DigitMessage,
                            c
                            );
                    }
                    else
                    {
                        if (IsOperator(c))
                        {
                            lexer.OnMessage(
                                LexerMachine.OperatorMessage,
                                c
                                );
                        }
                        else
                        {
                            lexer.OnMessage(
                                LexerMachine.WhitespaceMessage,
                                ' '
                                );
                        }
                    }
                }
            }
            lexer.OnMessage(
                LexerMachine.WhitespaceMessage,
                ' '
                );
            return(lexer.Tokens);
        }