private ErrorExpression Error(string verbatimImage = null, Expression preceeding = null) { var res = new ErrorExpression(verbatimImage, preceeding); res.SetLoc(GetStart(), GetEnd()); return res; }
private ErrorExpression ReadLineAsError(Expression preceeding, string message) { var t = NextToken(); Debug.Assert(t.Kind == TokenKind.Colon); var image = new StringBuilder(); if (_verbatim) { image.Append(_tokenWhiteSpace); } image.Append(':'); while (!IsEndOfLineToken(PeekToken())) { t = NextToken(); if (_verbatim) { image.Append(_tokenWhiteSpace); image.Append(t.VerbatimImage); } else { image.Append(t.Image); } } var err = new ErrorExpression(image.ToString(), preceeding); err.SetLoc(preceeding.StartIndex, GetEnd()); ReportSyntaxError(err.StartIndex, err.EndIndex, message); return err; }