14 using System.Collections.Generic;
24 this.Flags |= TermFlags.IsPunctuation;
27 public string LineTerminators =
"\n\r\v";
29 #region overrides: Init, GetFirsts, TryMatch
31 base.Init(grammarData);
33 foreach(
char t
in LineTerminators)
34 grammarData.Grammar.WhitespaceChars = grammarData.Grammar.WhitespaceChars.Replace(t.ToString(),
string.Empty);
38 foreach(
char t
in LineTerminators)
39 firsts.Add(t.ToString());
43 char current = source.PreviewChar;
44 if (!LineTerminators.Contains(current))
return null;
46 bool doExtraShift = (current ==
'\r' && source.NextPreviewChar ==
'\n');
47 source.PreviewPosition++;
49 source.PreviewPosition++;
50 Token result = source.CreateToken(this.OutputTerminal);
TokenCategory
Token category.
static string LabelLineBreak
Looks up a localized string similar to [line break].
override Token TryMatch(ParsingContext context, ISourceStream source)
Interface for Terminals to access the source stream and produce tokens.
NewLineTerminal(string name)
Tokens are produced by scanner and fed to parser, optionally passing through Token filters in between...
override void Init(GrammarData grammarData)
override IList< string > GetFirsts()