Я пытаюсь написать что-то вроде этого: andExpr - это orExpr, разделенный "и". Если он не разделен символом «и», он должен восприниматься как буквальный, а не как orExpr.
Итак, если я сделаю:
def andExpr: Parser[Expr] = rep1sep(orExpr, "and") ^^{
//omitting the transformation function
} | literal
Предположим, что каждое выражение является andExpr.
Я хочу, чтобы выражение было orExpr, только если оно разделено "и". Например, если вход «hello and hi», в этом случае «hello» - это один orExpr, а «hi» - один orExpr.
Но прямо сейчас (существующий код, который я написал) каждый andExpr по умолчанию является orExpr. Итак, прямо сейчас, если вход «пока», это также orExpr. Но я хочу, чтобы "пока" квалифицировалось как буквальное, а не как orExpr.
Как я могу это сделать?