void Parse_RangeOpt(Context& ctx) { if (ctx.Token() == TKRangeSeparator) { //RangeOpt => RangeSeparator LiteralChar ctx.Match(TKRangeSeparator); ctx.Match(TKLiteralChar); ctx.Action_PrintRange(); } else if (ctx.Token() == TKKeywordAny || ctx.Token() == TKPlusCharacter || ctx.Token() == TKLiteralChar || ctx.Token() == TKIdentifier || ctx.Token() == TKSemicolonCharacter || ctx.Token() == TKQuestionMarkCharacter || ctx.Token() == TKAsteriskCharacter || ctx.Token() == TKVerticalLineCharacter || ctx.Token() == TKLeftParenthesisCharacter || ctx.Token() == TKRightParenthesisCharacter || ctx.Token() == TKStringLiteral) { //RangeOpt => Epsilon } else { assert(false); } }
void Parse_RangeOpt(Context& ctx) { if (ctx.Token() == TKRangeSeparator) { //RangeOpt => RangeSeparator LiteralChar ctx.Match(TKRangeSeparator); ctx.Match(TKLiteralChar); ctx.Action_PrintRange(); } else if (ctx.Token() == TKKeywordAny || ctx.Token() == TKPlusCharacter || ctx.Token() == TKLiteralChar || ctx.Token() == TKIdentifier || ctx.Token() == TKSemicolonCharacter || ctx.Token() == TKLeftParenthesisCharacter || ctx.Token() == TKQuestionMarkCharacter || ctx.Token() == TKAsteriskCharacter || ctx.Token() == TKVerticalLineCharacter || ctx.Token() == TKRightParenthesisCharacter || ctx.Token() == TKStringLiteral) { //RangeOpt => Epsilon } else { throw ParserException(ctx.GetLine(), ctx.GetCol(), ErrorCodeUnexpectedToken); } }