On 28 February 2012 16:50, Fabrizio Perin <fabrizio.pe...@gmail.com> 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 <siguc...@gmail.com>
>>
>> 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.
>>
>

Reply via email to