[BACK]Return to parse.y CVS log [TXT][DIR] Up to [local] / OpenXM_contrib2 / asir2000 / parse

Diff for /OpenXM_contrib2/asir2000/parse/parse.y between version 1.10 and 1.14

version 1.10, 2001/09/03 07:01:10 version 1.14, 2002/12/22 02:08:29
Line 45 
Line 45 
  * DEVELOPER SHALL HAVE NO LIABILITY IN CONNECTION WITH THE USE,   * DEVELOPER SHALL HAVE NO LIABILITY IN CONNECTION WITH THE USE,
  * PERFORMANCE OR NON-PERFORMANCE OF THE SOFTWARE.   * PERFORMANCE OR NON-PERFORMANCE OF THE SOFTWARE.
  *   *
  * $OpenXM: OpenXM_contrib2/asir2000/parse/parse.y,v 1.9 2001/09/03 01:04:28 noro Exp $   * $OpenXM: OpenXM_contrib2/asir2000/parse/parse.y,v 1.13 2002/12/09 00:42:15 noro Exp $
 */  */
 %{  %{
 #define malloc(x) GC_malloc(x)  #define malloc(x) GC_malloc(x)
Line 65 
Line 65 
   
 extern int gdef;  extern int gdef;
 extern SNODE parse_snode;  extern SNODE parse_snode;
 extern int main_parser;  extern int main_parser, allow_create_var;
   
 int prresult;  int prresult;
   
Line 173  tail : ';' 
Line 173  tail : ';' 
                         { if ( main_parser ) prresult = 1; }                          { if ( main_parser ) prresult = 1; }
                 | '$'                  | '$'
                         { if ( main_parser ) prresult = 0; }                          { if ( main_parser ) prresult = 0; }
   ;
 desc    :  desc    :
                         { $$ = 0; }                          { $$ = 0; }
                 | STR                  | STR
Line 297  pexpr : STR
Line 298  pexpr : STR
                         {                          {
                                 $$ = mkfnode(3,I_TIMER,$3,$5,$7);                                  $$ = mkfnode(3,I_TIMER,$3,$5,$7);
                         }                          }
                   | PARIF '(' LCASE ')'
                           {
                                   searchf(parif,$3,(FUNC *)&val);
                                   if ( !val )
                                           mkparif($3,(FUNC *)&val);
                                   $$ = mkfnode(2,I_FUNC,val,0);
                           }
                 | PARIF '(' LCASE ',' node ')'                  | PARIF '(' LCASE ',' node ')'
                         {                          {
                                 searchf(parif,$3,(FUNC *)&val);                                  searchf(parif,$3,(FUNC *)&val);
Line 316  pexpr : STR
Line 324  pexpr : STR
                         { $$ = mkfnode(1,I_PAREN,$2); }                          { $$ = mkfnode(1,I_PAREN,$2); }
                 | UCASE                  | UCASE
                         {                          {
                                 if ( main_parser )                                  if ( main_parser || allow_create_var )
                                         $$ = mkfnode(2,I_PVAR,makepvar($1),0);                                          $$ = mkfnode(2,I_PVAR,makepvar($1),0);
                                 else {                                  else {
                                         ind = searchpvar($1);                                          ind = searchpvar($1);
Line 357  expr  : pexpr
Line 365  expr  : pexpr
                 | '+' expr      %prec PLUS                  | '+' expr      %prec PLUS
                         { $$ = $2; }                          { $$ = $2; }
                 | '-' expr      %prec MINUS                  | '-' expr      %prec MINUS
                         { $$ = mkfnode(3,I_BOP,$1,0,$2); }                          { $$ = mkfnode(1,I_MINUS,$2); }
                 | expr '+' expr                  | expr '+' expr
                         { $$ = mkfnode(3,I_BOP,$2,$1,$3); }                          { $$ = mkfnode(3,I_BOP,$2,$1,$3); }
                 | expr '-' expr                  | expr '-' expr

Legend:
Removed from v.1.10  
changed lines
  Added in v.1.14

FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>