public ExprOp Parse(InputTextStream inStream, AmountParseFlagsEnum flags = AmountParseFlagsEnum.PARSE_DEFAULT, string originalString = null) { try { ExprOp topNode = ParseValueExpr(inStream, flags); if (UseLookahead) { UseLookahead = false; Lookahead.Rewind(inStream); } Lookahead.Clear(); return(topNode); } catch { if (!String.IsNullOrEmpty(originalString)) { ErrorContext.Current.AddErrorContext("While parsing value expression:"); int endPos = inStream.Pos; int pos = endPos > 0 ? endPos - Lookahead.Length : 0; ErrorContext.Current.AddErrorContext(ErrorContext.LineContext(originalString, pos, endPos)); } throw; } }
public ExprOp Parse(InputTextStream inStream, AmountParseFlagsEnum flags = AmountParseFlagsEnum.PARSE_DEFAULT, string originalString = null) { try { ExprOp topNode = ParseValueExpr(inStream, flags); if (UseLookahead) { UseLookahead = false; Lookahead.Rewind(inStream); } Lookahead.Clear(); return(topNode); } catch { if (!String.IsNullOrEmpty(originalString)) { ErrorContext.Current.AddErrorContext("While parsing value expression:"); int endPos = inStream.Pos; int pos = endPos > 0 ? endPos - Lookahead.Length : 0; Logger.Current.Debug("parser.error", () => String.Format("original_string = '{0}'", originalString)); Logger.Current.Debug("parser.error", () => String.Format(" pos = {0}", pos)); Logger.Current.Debug("parser.error", () => String.Format(" end_pos = {0}", endPos)); Logger.Current.Debug("parser.error", () => String.Format(" token kind = {0}", Lookahead.Kind)); Logger.Current.Debug("parser.error", () => String.Format(" token length = {0}", Lookahead.Length)); ErrorContext.Current.AddErrorContext(ErrorContext.LineContext(originalString, pos, endPos)); } throw; } }