On 28 February 2012 16:50, Fabrizio Perin <[email protected]> wrote:
> Hi,
> I think the reason is for consistency.
> If fact I like as it is now for that reason.
>
> $a asParser / $b asParser / #foo asParser "It looks clear to me and is
> consistent."
>
> a asParser / $b / #foo "it looks odd because it is inconsistent."
>
> Anyway, for such simple parsers you loose consistency and you don't gain
> much. If you have to deal with longer statements, if you have to make your
> parsers reusable or simply to make your simple example cleaner for real, you
> should have separate methods:
> a
> ^$a asParser
>
> b
> ^$b asParser
>
> foo
> ^#foo asParser
>
> a / b / foo " this is cleaner and consistent"
>
> I hope I made my point.
>
> Cheers,
> Fabrizio
>
> "Consistency, Consistency, Consistency"
I've often used #anyOf: -
anyOf: someTokens
"Writing without a compiler; may actually still work!"
^ someTokens allButFirst
inject: someTokens first
into: [:acc :each | acc / each asParser]
self anyOf: #($a $b #foo).
frank
> 2012/2/28 Igor Stasenko <[email protected]>
>>
>> Why i need to put #asParser everywhere?
>>
>> $a asParser / $b asParser / #foo asParser
>>
>>
>> a proper implementation of #/ makes the above to just:
>>
>> $a asParser / $b / #foo
>>
>> which is much more cleaner and convenient.
>>
>> Or, is there a reason to not send #asParser to every argument where
>> parser expected?
>>
>>
>> --
>> Best regards,
>> Igor Stasenko.
>>
>