Hi,
I'm not sure how to answer the forwarded email. At list i have an idea but without
using PPExpressionParser. Someone has an answer that rely on PPExpressionParser?
Cheers,
Fabrizio
Begin forwarded message:
Hi Fabrizio,
How are you? Its Friday, its me again :D.
I realized some stuff but still don't really get the Expressions. Let me give you an
example:
exp := PPExpressionParser new.
exp term: (($$ asParser trim , #letter asParser star) flatten / ($" asParser trim,
$" asParser negate star, $" asParser trim) flatten);
group: [ :g |
g right: '=' asParser trim do: [:a :op :b | {a. op. b.}].
].
exp parse: '$var = "dings"'. "this is valid code"
exp parse: '"dings" = $var'. "this is invalid code"
How do i tell the expression parser to make a constrain on one side? Or a better question
could be: How do i combine expression parsers to achieve a similar behavior? Do i even
have to? Or am I to assume that the programmer just knows the order...? I could do
something like:
group: [ :g |
g right: '=' asParser trim do: [:a :op :b |
{ (LeftAssignmentSideExpressionParser new parse: a.) op.
(RightAssignmentSideExpressionParser new parse: b.) }
].
].
Do you see my Problem?
Cheers Michael