protected virtual string ReadExprInBracket() { SkipSymbol("("); int level = 0; StringBuilder sb = new StringBuilder(); bool was = false; for (;;) { if (was) { sb.Append(" "); } if (level == 0 && IsSymbol(")")) { return(sb.ToString()); } if (IsSymbol("(")) { level++; } else if (IsSymbol(")")) { level--; } sb.Append(CurrentOriginal.GetOriginalToken()); NextToken(); } }
protected virtual string ReadExpr(params string[] endsym) { int level = 0; StringBuilder sb = new StringBuilder(); bool was = false; while (level > 0 || !IsSymbol(endsym)) { if (was) { sb.Append(" "); } if (IsSymbol("(")) { level++; } else if (IsSymbol(")")) { level--; } sb.Append(CurrentOriginal.GetOriginalToken()); NextToken(); } return(sb.ToString()); }