internal WhitespaceScanner(TextReader reader, ErrorReporter reporter) : base(reader, reporter) { whitespace = new HashSet<char>(); whitespace.Add(' '); whitespace.Add('\t'); whitespace.Add('\n'); }
public Lexer(string path, ErrorReporter reporter, int spacesPerTab=8) { reader = new TextReader(path, spacesPerTab); this.reporter = reporter; reporter.Lines = reader.Lines; backtrackBuffer = new BacktrackBuffer(BACKTRACK_BUFFER_SIZE); scanners = new List<TokenScanner>(); scanners.Add(new WhitespaceScanner(reader, reporter)); scanners.Add(new CommentScanner(reader, reporter)); scanners.Add(new IdentifierAndKeywordScanner(reader, reporter)); scanners.Add(new IntegerScanner(reader, reporter)); scanners.Add(new StringScanner(reader, reporter)); scanners.Add(new OperatorScanner(reader, reporter)); }
internal TokenScanner(TextReader reader, ErrorReporter reporter) { this.reader = reader; this.Reporter = reporter; }
internal CommentScanner(TextReader reader, ErrorReporter reporter) : base(reader, reporter) { isMultilineComment = false; }