Rule ExpressionPhrase() {
        // Space-separated expressions
        return Sequence(
                Expression(), push(new ExpressionPhraseNode(pop())),
                ZeroOrMore(Ws1(), Expression(), peek(1).addChild(pop())),
                Optional(Ws0(), Important(), peek(1).addChild(pop()))
        );
    }
Rule ExpressionPhrase() {
        
        return Sequence(
                Expression(), push(new ExpressionPhraseNode(pop())),
                ZeroOrMore(Ws1(), Expression(), peek(1).addChild(pop())),
                Optional(Ws0(), Important(), peek(1).addChild(pop()))
        );
    }
Rule ExpressionPhrase ( ) { // Space-separated expressions return Sequence ( Expression ( ) , push ( new ExpressionPhraseNode ( pop ( ) ) ) , ZeroOrMore ( Ws1 ( ) , Expression ( ) , peek ( 1 ) . addChild ( pop ( ) ) ) , Optional ( Ws0 ( ) , Important ( ) , peek ( 1 ) . addChild ( pop ( ) ) ) ) ; }
Expression (Operator Expression)+ Future: Operations
/ Expression (Ws1 Expression)* Important?
Expression ( Operator Expression ) + Future : Operations / Expression ( Ws1 Expression ) * Important?