Changeset 7b3094 in git
- Timestamp:
- Jan 11, 2000, 6:51:15 PM (23 years ago)
- Branches:
- (u'spielwiese', '828514cf6e480e4bafc26df99217bf2a1ed1ef45')
- Children:
- 3a62db15459fcfd405979f894c67de77e0ff1e84
- Parents:
- ba8c0bced42227f9c29f470c292a51ab29c2a405
- Location:
- Singular
- Files:
-
- 4 edited
Legend:
- Unmodified
- Added
- Removed
-
Singular/grammar.y
rba8c0b r7b3094 2 2 * Computer Algebra System SINGULAR * 3 3 ****************************************/ 4 /* $Id: grammar.y,v 1.7 7 1999-12-21 11:44:01Singular Exp $ */4 /* $Id: grammar.y,v 1.78 2000-01-11 17:51:14 Singular Exp $ */ 5 5 /* 6 6 * ABSTRACT: SINGULAR shell grammatik … … 288 288 289 289 %type <i> '=' '<' '>' '+' '-' COLONCOLON 290 %type <i> ' *' '/' '[' ']' '^' ',' ';'290 %type <i> '/' '[' ']' '^' ',' ';' 291 291 292 292 … … 295 295 %nonassoc '=' DOTDOT 296 296 %left ',' 297 %left ' |' '&'297 %left '&' 298 298 %left EQUAL_EQUAL NOTEQUAL 299 %left '<' '>' GE LE299 %left '<' 300 300 %left '+' '-' 301 %left ' *' '/' '%'301 %left '/' 302 302 %left UMINUS NOT 303 303 %left '^' … … 744 744 if(iiExprArith2(&$$,&$1,'-',&$3)) YYERROR; 745 745 } 746 | expr '*' expr747 {748 if(iiExprArith2(&$$,&$1,'*',&$3)) YYERROR;749 }750 746 | expr '/' expr 751 747 { … … 756 752 if(iiExprArith2(&$$,&$1,'^',&$3)) YYERROR; 757 753 } 758 | expr ' %' expr754 | expr '<' expr 759 755 { 760 756 if(iiExprArith2(&$$,&$1,$<i>2,&$3)) YYERROR; 761 757 } 762 | expr '>' expr763 {764 if(iiExprArith2(&$$,&$1,'>',&$3)) YYERROR;765 }766 | expr '<' expr767 {768 if(iiExprArith2(&$$,&$1,'<',&$3)) YYERROR;769 }770 758 | expr '&' expr 771 759 { 772 if(iiExprArith2(&$$,&$1,'&',&$3)) YYERROR; 773 } 774 | expr '|' expr 775 { 776 if(iiExprArith2(&$$,&$1,'|',&$3)) YYERROR; 760 if(iiExprArith2(&$$,&$1,$<i>2,&$3)) YYERROR; 777 761 } 778 762 | expr NOTEQUAL expr … … 783 767 { 784 768 if(iiExprArith2(&$$,&$1,EQUAL_EQUAL,&$3)) YYERROR; 785 }786 | expr GE expr787 {788 if(iiExprArith2(&$$,&$1,GE,&$3)) YYERROR;789 }790 | expr LE expr791 {792 if(iiExprArith2(&$$,&$1,LE,&$3)) YYERROR;793 769 } 794 770 | expr DOTDOT expr … … 1062 1038 filecmd: 1063 1039 '<' stringexpr 1064 { if((feFilePending=feFopen($2,"r",NULL,TRUE))==NULL) YYERROR; } 1040 { if ($<i>1 != '<') YYERROR; 1041 if((feFilePending=feFopen($2,"r",NULL,TRUE))==NULL) YYERROR; } 1065 1042 ';' 1066 1043 { newFile($2,feFilePending); } -
Singular/iparith.cc
rba8c0b r7b3094 2 2 * Computer Algebra System SINGULAR * 3 3 ****************************************/ 4 /* $Id: iparith.cc,v 1.19 7 1999-12-21 11:44:02Singular Exp $ */4 /* $Id: iparith.cc,v 1.198 2000-01-11 17:51:15 Singular Exp $ */ 5 5 6 6 /* … … 123 123 { // name-string alias tokval toktype 124 124 { "$INVALID$", 0, -1, 0}, 125 { "and", 0, '&' , '&'},125 { "and", 0, '&' , LOGIC_OP}, 126 126 { "attrib", 0, ATTRIB_CMD , CMD_123}, 127 127 { "bareiss", 0, BAREISS_CMD , CMD_123}, … … 148 148 { "diff", 0, DIFF_CMD , CMD_2}, 149 149 { "dim", 0, DIM_CMD , CMD_1}, 150 { "div", 0, INTDIV_CMD , '/'},150 { "div", 0, INTDIV_CMD , MULDIV_OP}, 151 151 #ifdef DRING 152 152 { "dring", 0, DRING_CMD , DRING_CMD}, … … 222 222 { "minor", 0, MINOR_CMD , CMD_23}, 223 223 { "minres", 0, MINRES_CMD , CMD_1}, 224 { "mod", 0, INTMOD_CMD , '%'},224 { "mod", 0, INTMOD_CMD , MULDIV_OP}, 225 225 { "module", 0, MODUL_CMD , MODUL_CMD}, 226 226 { "modulo", 0, MODULO_CMD , CMD_2}, … … 249 249 { "open", 0, OPEN_CMD , CMD_1}, 250 250 { "option", 0, OPTION_CMD , CMD_M}, 251 { "or", 0, '|' , '|'},251 { "or", 0, '|' , LOGIC_OP}, 252 252 { "ord", 0, ORD_CMD , CMD_1}, 253 253 { "ordstr", 0, ORDSTR_CMD , CMD_1}, -
Singular/scanner.l
rba8c0b r7b3094 3 3 * Computer Algebra System SINGULAR * 4 4 ****************************************/ 5 /* $Id: scanner.l,v 1.2 5 1999-12-06 16:06:51 obachmanExp $ */5 /* $Id: scanner.l,v 1.26 2000-01-11 17:51:14 Singular Exp $ */ 6 6 #include <stdio.h> 7 7 #include <string.h> … … 247 247 "++" { return PLUSPLUS ; } 248 248 "==" { return EQUAL_EQUAL; } 249 "&&" { return '&'; }250 "||" { return '|'; }251 "<=" { return LE; }252 ">=" { return GE; }249 "&&" { lvalp->i='&'; return LOGIC_OP; } 250 "||" { lvalp->i='|'; return LOGIC_OP; } 251 "<=" { lvalp->i=LE; return COMP_OP; } 252 ">=" { lvalp->i=GE; return COMP_OP; } 253 253 "!" { return NOT; } 254 254 "!=" { return NOTEQUAL; } … … 291 291 return RINGVAR; 292 292 } 293 [0-9]+\."e"[+-][0-9]+ { 293 [0-9]+\."e"[+-][0-9]+ { 294 294 lvalp->name = (char *)yytext; 295 295 return RINGVAR; … … 299 299 return RINGVAR; 300 300 } 301 301 302 302 ({parname}|{name}) { 303 303 /* {name} */ … … 318 318 . { 319 319 /*if (*yytext == '\n') REJECT;*/ 320 lvalp->i = *yytext; /* token has own value */ 321 return *yytext; 320 register char ch= *yytext; 321 lvalp->i = ch; 322 switch(ch) 323 { 324 /* case '&': */ 325 case '|': 326 return LOGIC_OP; 327 /* case '/': */ 328 case '%': 329 case '*': 330 return MULDIV_OP; 331 /* case '<': */ 332 case '>': 333 return COMP_OP; 334 default: 335 break; 336 } 337 return ch; 322 338 } 323 339 %% -
Singular/tok.h
rba8c0b r7b3094 7 7 * ABSTRACT: tokens, types for interpreter; general macros 8 8 */ 9 /* $Id: tok.h,v 1.3 5 1999-12-21 11:44:01Singular Exp $ */9 /* $Id: tok.h,v 1.36 2000-01-11 17:51:15 Singular Exp $ */ 10 10 11 11 #ifndef MYYSTYPE … … 36 36 #define min(A,B) ((A) < (B) ? (A) : (B)) 37 37 #endif 38 39 /* the follwing defines for infix operators should not be changed: * 40 * grammar.y does not use the symbolic names * 41 * scanner.l uses the identies for some optimzations */ 42 #define LOGIC_OP '&' 43 #define MULDIV_OP '/' 44 #define COMP_OP '<' 38 45 39 46 #define COMMAND UMINUS+2 /* in tok.h */
Note: See TracChangeset
for help on using the changeset viewer.