Пример #1
0
        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);
        }
Пример #2
0
 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;
     }
 }