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()); }
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()); }