Beispiel #1
0
        public PeekableScanner(ScannerInfo scannerInfo)
        {
            CodeContract.RequiresArgumentNotNull(scannerInfo, "scannerInfo");

            m_lookAheadQueue = new CacheQueue<Lexeme>();
            m_masterScanner = new Scanner(scannerInfo);
        }
Beispiel #2
0
        public ForkableScannerBuilder(ScannerInfo info)
        {
            CodeContract.RequiresArgumentNotNull(info, "info");

            m_info = info;
            m_triviaTokens = new int[0];
        }
Beispiel #3
0
        public ForkableScannerBuilder(ScannerInfo info)
        {
            CodeContract.RequiresArgumentNotNull(info, "info");

            m_info         = info;
            m_triviaTokens = new int[0];
        }
Beispiel #4
0
        public PeekableScanner(ScannerInfo scannerInfo)
        {
            CodeContract.RequiresArgumentNotNull(scannerInfo, "scannerInfo");

            m_lookAheadQueue = new CacheQueue <Lexeme>();
            m_masterScanner  = new Scanner(scannerInfo);
        }
Beispiel #5
0
        internal Lexeme(ScannerInfo scannerInfo, int state, SourceSpan span, string content)
        {
            m_scannerInfo = scannerInfo;
            m_stateIndex  = state;
            Value         = new LexemeValue(content, span);

            m_trivia = s_emptyTrivia;
        }
Beispiel #6
0
 internal Lexeme(ScannerInfo scannerInfo, int state, SourceSpan span, string value, int skippedTokenCount)
 {
     m_scannerInfo = scannerInfo;
     m_stateIndex = state;
     Span = span;
     Value = value;
     SkippedTokenCount = skippedTokenCount;
 }
Beispiel #7
0
        internal Lexeme(ScannerInfo scannerInfo, int state, SourceSpan span, string content)
        {
            m_scannerInfo = scannerInfo;
            m_stateIndex = state;
            Value = new LexemeValue(content, span);

            m_trivia = s_emptyTrivia;
        }
Beispiel #8
0
        public Scanner(ScannerInfo scannerInfo)
        {
            m_scannerInfo = scannerInfo;

            m_engine = new FiniteAutomationEngine(m_scannerInfo.TransitionTable, m_scannerInfo.CharClassTable);
            m_lexemeValueBuilder = new StringBuilder(32);
            m_tokenAttributes = new int[scannerInfo.TokenCount];

            Initialize();
        }
Beispiel #9
0
        public Scanner(ScannerInfo scannerInfo)
        {
            m_scannerInfo = scannerInfo;

            m_engine             = new FiniteAutomationEngine(m_scannerInfo.TransitionTable, m_scannerInfo.CharClassTable);
            m_lexemeValueBuilder = new StringBuilder(32);
            m_tokenAttributes    = new int[scannerInfo.TokenCount];

            Initialize();
        }
        private void SetUpScanner()
        {
            var lexcion = new Lexicon();

            var lexer = lexcion.Lexer;

            PLUS = lexer.DefineToken(RE.Symbol('+'));
            ASTERISK = lexer.DefineToken(RE.Symbol('*'));
            LEFT_PARENTHESIS = lexer.DefineToken(RE.Symbol('('));
            RIGHT_PARENTHESIS = lexer.DefineToken(RE.Symbol(')'));
            NUMBER = lexer.DefineToken(RE.Range('0', '9').Many1(), "number");
            SPACE = lexer.DefineToken(RE.Symbol(' ').Many1());

            m_scannerInfo = lexcion.CreateScannerInfo();
        }
Beispiel #11
0
        internal Lexeme(ScannerInfo scannerInfo, int state, SourceSpan span, string content, List <Lexeme> trivia)
        {
            m_scannerInfo = scannerInfo;
            m_stateIndex  = state;
            Value         = new LexemeValue(content, span);

            if (trivia != null)
            {
                m_triviaArray = trivia.ToArray();
                m_trivia      = new ReadOnlyCollection <Lexeme>(m_triviaArray);
            }
            else
            {
                m_triviaArray = null;
                m_trivia      = new ReadOnlyCollection <Lexeme>(s_emptyTrivia);
            }
        }
Beispiel #12
0
        internal Lexeme(ScannerInfo scannerInfo, int state, SourceSpan span, string content, List<Lexeme> trivia)
        {
            m_scannerInfo = scannerInfo;
            m_stateIndex = state;
            Value = new LexemeValue(content, span);

            if (trivia != null)
            {
                m_triviaArray = trivia.ToArray();
                m_trivia = new ReadOnlyCollection<Lexeme>(m_triviaArray);

            }
            else
            {
                m_triviaArray = null;
                m_trivia = new ReadOnlyCollection<Lexeme>(s_emptyTrivia);
            }
        }