2
내가 중위 사업자 왼쪽 연관 트리를 구축하기위한 구문을 지배했습니다스칼라는 왼쪽 연관 구문 분석 첨자 연산자
term * (
"+" ^^^ { (a:Expr, b:Expr) => new FunctionCall(plus, a::b::Nil) } |
"-" ^^^ { (a:Expr, b:Expr) => new FunctionCall(minus, a::b::Nil) })
나는 완전히 어떻게 작동하는지 이해하지 고백해야하지만. 내가 지금하고 싶은
sub(call(call(sub(a, b), c), d), e)
이 높은 수준 "^^^"마법으로 확장 할 수있는 구문 분석해야
a[b](c)(d)[e]
처럼 보일 수 있습니다 구문 비슷한 효과를 달성하는 것입니다 순수 중위 연산자가 아닌 경우를 포함합니까? 또는 어떤 종류의 fold-left 로직을 직접 구현해야합니까? 그렇다면 어떤 모습 일지에 대한 암시가 있습니까?