Article View: fj.lang.implementation
Article #56Re: YACC or hand-written? (Re: $@<0$NI>2A(J)
From: Tanaka Akira
Date: Fri, 26 Sep 1997 00:00
Date: Fri, 26 Sep 1997 00:00
57 lines
2423 bytes
2423 bytes
In article <60epva$5sc$1@news.NERO.NET>,
takikawm@cs.orst.edu (Masami Takikawa) writes:
> $B$H$O8@$(!"KM$O(B yacc $B$r;H$o$J$$$G(B parser $B$r=q$/$3$H$,B?$$$G$9!#(B
> $B<0$NI>2A$K4X$7$F8@$($P!"Nc$($P1i;;;R$,F0E*$KDj5A$G$-$k$h$&$J(B
> $B8@8l(B($BNc$($P(B Prolog)$B$@$H(B yacc $B$G$O=q$1$^$;$s$h$M(B? $B6qBNE*$K$O!"(B
>
> + is_a_left_associative_and_its_priority_is 500;
> * is_a_left_associative_and_its_priority_is 300;
>
> print 10+5*3;
>
> $B$_$?$$$J8@8l$,(B yacc $B$G=q$1$k$+$H$$$&$3$H$G$9!#(B
$B$?$7$+$KIaDL$N(B yacc $B$G$O=q$1$J$$$G$7$g$&$,(B, $B@$$NCf$K$OL>A0$K(B yacc $B$H$D(B
$B$$$F$$$F$b$=!<$$$&8@8l$r07$($k$b$N$b$"$k$h$&$G$9!#(B
$B$?$H$($P(B, zyacc $B$H$$$&$b$N$G$O(B LR $BI=$N>WFM$N2r7h$r<B9T;~$K(B($B%f!<%6!<$,(B
$BG$0U$K;XDj$7$?%3!<%I$G(B)$B9T$J$($k$N$G(B, $B1i;;;R$NF0E*$JDj5A$b2DG=$G$9!#(B
http://opal.cs.binghamton.edu/~zdu/zyacc
$B$?$H$($P(B, $B%H!<%/%s$r(B ID $B0l<oN`$K$7$F$7$^$C$F1i;;;R$+$I$&$+$NH=JL$OA4It(B
$BF0E*$K$d$k$K$O$D$.$N$h$&$J$+$s$8$G5-=R$r$7$^$9!#(B
exp
: constant
| unary exp
%test(prec_of($1) > prec_of(yylval))
| exp binary exp
%test(prec_of($2) > prec_of(yylval) || prec_of($2) == prec_of(yylval) && is_lassoc($2))
;
constant
: %test(is_constant(yylval)) ID
;
unary
: %test(is_unary(yylval)) ID
;
binary
: %test(is_binary(yylval)) ID
;
$B$G(B, $B1i;;;R$NDj5A$rJQ$($?$/$J$C$?$i(B prec_of, is_lassoc, is_constant,
is_unary, is_binary $B$"$?$j$N5sF0$rI{:nMQ$GE,Ev$KJQ$($F$7$^$&$o$1$G$9!#(B
$B$^$!(B, 3$B9`1i;;;R$rDj5A$7$?$$$J$s$F$$$o$l$k$H(B, $B9=J8$r8+D>$5$J$-$c$$$1$^(B
$B$;$s$,!#(B
> (Lisp $B$b(B yacc
> $B$G=q$1$J$$$J$"(B)
$B9=J8$,%^%/%m$GDj5A$5$l$?$j(B, keyword $B$,1#$5$l$?$j$9$k$+$i(B?
--
[$BEDCf(B $BE/(B][$B$?$J$+(B $B$"$-$i(B][Tanaka Akira]
Technical Details
Message-ID:
<rsq4t78mx0c.fsf@lss3-is27.jaist.ac.jp>Path:
arc1-ca.pugleaf.net!unknown!not-for-mailReferences:
<SHIOZAWA.97Sep24200510@epsilon.myo.inst.keio.ac.jp> <xoisout6ddx.fsf@spls87.ccs.mt.nec.co.jp> <60epva$5sc$1@news.NERO.NET>Show Full Headers
Complete Article Headers
X-Google-Language: Japanese,JIS X-Google-Thread: 10692b,c35bc22acd650a0c,start X-Google-Attributes: gid10692b,public From: Tanaka Akira <akr@jaist.ac.jp> Subject: Re: YACC or hand-written? (Re: $@<0$NI>2A(J) Date: 1997/09/26 Message-ID: <rsq4t78mx0c.fsf@lss3-is27.jaist.ac.jp> X-Deja-AN: 275710210 References: <SHIOZAWA.97Sep24200510@epsilon.myo.inst.keio.ac.jp> <xoisout6ddx.fsf@spls87.ccs.mt.nec.co.jp> <60epva$5sc$1@news.NERO.NET> Organization: JAIST, Hokuriku; Tatsunokuchi, Nomi, Ishikawa, Japan Newsgroups: fj.lang.implementation