union_dats.c:644:119: error: expected expression before ‘)’ token
 ATSINSmove_void(tmp23__1, PMVtmpltcstmat[0](ptr0_set<S2Eexi(tag(3977); ; S2Eapp(S2Ecst(intfloat); S2Evar(tag(3977))))>)(tmp22__1, arg1)) ;
--
You received this message because you are subscribed to the Google Groups "ats-lang-users" group.
To unsubscribe from this group and stop receiving emails from it, send an email to ats-lang-user...@googlegroups.com.
To post to this group, send email to ats-lan...@googlegroups.com.
Visit this group at https://groups.google.com/group/ats-lang-users.
To view this discussion on the web visit https://groups.google.com/d/msgid/ats-lang-users/baa9f016-0776-4cb4-a790-21b6859c5bc9%40googlegroups.com.
staload "share/atspre_staload.hats"You just need to add the following line at the beginning:
To view this discussion on the web visit https://groups.google.com/d/msgid/ats-lang-users/67d6d4e5-55c1-4ba5-b16e-4381611130a7%40googlegroups.com.
I read your code a bit.
I guess I used shuntingyard to parse expressions in ATS; I just
didn't know the name of the algorithm until this moment :)
I learned it from reading Frank Pfenning's code about 20 years ago.
On Thursday, April 28, 2016 at 7:39:11 PM UTC+6, gmhwxi wrote:I read your code a bit.
I guess I used shuntingyard to parse expressions in ATS; I just
didn't know the name of the algorithm until this moment :)Yes, actually, I was thinking about fixity resolution in ATS, and why it works.The classic approach to parsing with precedence, where one has to contort the grammar, is really awful. If there are like 5 operators in the language being parsed, it's mostly okay, but it doesn't really scale when there are many operators to handle.