public Token <IN> Transcode(FSMMatch <GenericToken> match) { var tok = new Token <IN>(); var inTok = match.Result; tok.IsComment = inTok.IsComment; tok.IsEmpty = inTok.IsEmpty; tok.Value = inTok.Value; tok.CommentType = inTok.CommentType; tok.Position = inTok.Position; tok.Discarded = inTok.Discarded; tok.StringDelimiter = StringDelimiterChar; tok.TokenID = (IN)match.Properties[DerivedToken]; return(tok); }
private void ComputePositionWhenIgnoringEOL(FSMMatch <GenericToken> r, List <Token <IN> > tokens) { if (!LexerFsm.IgnoreEOL) { if (r.IsLineEnding) { ; } var newPosition = r.Result.Position.Clone(); var eols = tokens.Where(t => t.IsLineEnding).ToList(); int line = eols.Count; int column = newPosition.Index; if (eols.Any()) { var lasteol = eols.Last(); column = newPosition.Index - (lasteol.Position.Index + lasteol.Value.Length); } r.Result.Position.Line = line; r.Result.Position.Column = column; } }