Exemplo n.º 1
0
        public void testScanner()
        {
            var source           = @"
class C {
}
";
            var codeErrorManager = new CodeErrorManager();
            var preprocessor     = new Preprocessor(codeErrorManager, source.toCharArray());
            var scanner          = new PreprocessedTextScanner(codeErrorManager, preprocessor.preprocess());

            Assert.assertEquals(LexicalUnit.NewLine, scanner.nextLexicalUnit());
            Assert.assertEquals(LexicalUnit.Keyword, scanner.nextLexicalUnit());
            Assert.assertEquals(LexicalUnit.Whitespace, scanner.nextLexicalUnit());
            Assert.assertEquals(LexicalUnit.Identifier, scanner.nextLexicalUnit());
            Assert.assertEquals(LexicalUnit.Whitespace, scanner.nextLexicalUnit());
            Assert.assertEquals(LexicalUnit.OpenBrace, scanner.nextLexicalUnit());
            Assert.assertEquals(LexicalUnit.NewLine, scanner.nextLexicalUnit());
            Assert.assertEquals(LexicalUnit.CloseBrace, scanner.nextLexicalUnit());
            Assert.assertEquals(LexicalUnit.NewLine, scanner.nextLexicalUnit());
            Assert.assertEquals(LexicalUnit.EndOfStream, scanner.nextLexicalUnit());
        }
Exemplo n.º 2
0
        public void testScanner3()
        {
            var source           = @"#if XXX
class
#else
interface
#endif
C {
}
";
            var codeErrorManager = new CodeErrorManager();
            var preprocessor     = new Preprocessor(codeErrorManager, source.toCharArray());
            var scanner          = new PreprocessedTextScanner(codeErrorManager, preprocessor.preprocess());

            Assert.assertEquals(LexicalUnit.Keyword, scanner.nextLexicalUnit());
            RestorePoint rp = scanner.createRestorePoint();

            Assert.assertEquals(LexicalUnit.NewLine, scanner.nextLexicalUnit());
            Assert.assertEquals(LexicalUnit.Identifier, scanner.nextLexicalUnit());
            Assert.assertEquals(LexicalUnit.Whitespace, scanner.nextLexicalUnit());
            Assert.assertEquals(LexicalUnit.OpenBrace, scanner.nextLexicalUnit());
            Assert.assertEquals(LexicalUnit.NewLine, scanner.nextLexicalUnit());
            scanner.restore(rp);
            Assert.assertEquals(LexicalUnit.Keyword, scanner.nextLexicalUnit());
            Assert.assertEquals("interface", new String(scanner.Text, scanner.StartPosition, scanner.EndPosition - scanner.StartPosition));
            Assert.assertEquals(LexicalUnit.NewLine, scanner.nextLexicalUnit());
            Assert.assertEquals(LexicalUnit.Identifier, scanner.nextLexicalUnit());
            Assert.assertEquals(LexicalUnit.Whitespace, scanner.nextLexicalUnit());
            Assert.assertEquals(LexicalUnit.OpenBrace, scanner.nextLexicalUnit());
            Assert.assertEquals(LexicalUnit.NewLine, scanner.nextLexicalUnit());
            Assert.assertEquals(LexicalUnit.CloseBrace, scanner.nextLexicalUnit());
            Assert.assertEquals(LexicalUnit.NewLine, scanner.nextLexicalUnit());
            Assert.assertEquals(LexicalUnit.EndOfStream, scanner.nextLexicalUnit());
        }