[Commit] nickle ChangeLog, 1.89, 1.90 gram.y, 1.142, 1.143 lex.l, 1.77, 1.78 mem.h, 1.15, 1.16

Keith Packard commit at keithp.com
Sun Oct 17 16:34:39 PDT 2004


Committed by: keithp

Update of /local/src/CVS/nickle
In directory home.keithp.com:/tmp/cvs-serv20675

Modified Files:
	ChangeLog gram.y lex.l mem.h 
Log Message:
2004-10-17  Keith Packard  <keithp at keithp.com>

	* gram.y:
	Add POW2 and POW3 operators
	
	* lex.l:
	Add several non-ascii character equivalents.
	Make \r be white space (and ignored)
	
	* mem.h:
	Remove spurious semi-colon from ALLOCATE definition.


Index: ChangeLog
===================================================================
RCS file: /local/src/CVS/nickle/ChangeLog,v
retrieving revision 1.89
retrieving revision 1.90
diff -u -d -r1.89 -r1.90
--- ChangeLog	9 Oct 2004 22:49:07 -0000	1.89
+++ ChangeLog	17 Oct 2004 23:34:34 -0000	1.90
@@ -1,3 +1,15 @@
+2004-10-17  Keith Packard  <keithp at keithp.com>
+
+	* gram.y:
+	Add POW2 and POW3 operators
+	
+	* lex.l:
+	Add several non-ascii character equivalents.
+	Make \r be white space (and ignored)
+	
+	* mem.h:
+	Remove spurious semi-colon from ALLOCATE definition.
+
 2004-10-09  Keith Packard  <keithp at keithp.com>
 
 	* gram.y:

Index: gram.y
===================================================================
RCS file: /local/src/CVS/nickle/gram.y,v
retrieving revision 1.142
retrieving revision 1.143
diff -u -d -r1.142 -r1.143
--- gram.y	9 Oct 2004 22:49:07 -0000	1.142
+++ gram.y	17 Oct 2004 23:34:34 -0000	1.143
@@ -175,7 +175,7 @@
 %left		SHIFTL SHIFTR
 %left		PLUS MINUS
 %left		TIMES DIVIDE DIV MOD
-%right		POW STARSTAR
+%right		POW STARSTAR POW2 POW3
 %left		UNIONCAST
 %right		UMINUS BANG FACT LNOT INC DEC STAR AMPER THREADID
 %left		OS CS DOT ARROW STAROS CALL OP CP
@@ -1325,6 +1325,22 @@
 					 BuildName ("Math", "pow"), 
 					 NewExprTree (POW, $1, $3)); 
 		    }
+		| simpleexpr POW2
+		    {
+			$$ = NewExprTree (POW,
+					  BuildName("Math", "pow"),
+					  NewExprTree (POW, $1,
+						       NewExprConst (TEN_NUM,
+								     NewInt(2))));
+		    }
+		| simpleexpr POW3
+		    {
+			$$ = NewExprTree (POW,
+					  BuildName("Math", "pow"),
+					  NewExprTree (POW, $1,
+						       NewExprConst (TEN_NUM,
+								     NewInt(3))));
+		    }
 		| simpleexpr SHIFTL simpleexpr
 		    { $$ = NewExprTree(SHIFTL, $1, $3); }
 		| simpleexpr SHIFTR simpleexpr

Index: lex.l
===================================================================
RCS file: /local/src/CVS/nickle/lex.l,v
retrieving revision 1.77
retrieving revision 1.78
diff -u -d -r1.77 -r1.78
--- lex.l	29 Jul 2004 00:23:32 -0000	1.77
+++ lex.l	17 Oct 2004 23:34:34 -0000	1.78
@@ -354,10 +354,14 @@
 ","		{ yylval.ints = COMMA; return COMMA; }
 "$"		{ yylval.ints = DOLLAR; return DOLLAR; }
 "..."		{ yylval.ints = DOTDOTDOT; return DOTDOTDOT; }
+"…"		{ yylval.ints = DOTDOTDOT; return DOTDOTDOT; }
 "."		{ yylval.ints = DOT; return DOT; }
 "->"		{ yylval.ints = ARROW; return ARROW; }
+"→"		{ yylval.ints = ARROW; return ARROW; }
 "=>"		{ yylval.ints = DARROW; return DARROW; }
+"⇒"		{ yylval.ints = DARROW; return DARROW; }
 "<>"		{ yylval.value = Void; return VOIDVAL; }
+"â—Š"		{ yylval.value = Void; return VOIDVAL; }
 \n		{ 
 		    if (lexInput->at_eof) { strcpy (yytext, "EOF"); yylval.ints = ENDFILE; return ENDFILE; }
 		    if (!ignorenl) { yylval.ints = NL; return NL; } 
@@ -372,12 +376,17 @@
 "+="		{ yylval.ints = ASSIGNPLUS; return ASSIGNPLUS; }
 "-="		{ yylval.ints = ASSIGNMINUS; return ASSIGNMINUS; }
 "*="		{ yylval.ints = ASSIGNTIMES; return ASSIGNTIMES; }
+"×="		{ yylval.ints = ASSIGNTIMES; return ASSIGNTIMES; }
 "/="		{ yylval.ints = ASSIGNDIVIDE; return ASSIGNDIVIDE; }
+"÷="		{ yylval.ints = ASSIGNDIVIDE; return ASSIGNDIVIDE; }
 "//="		{ yylval.ints = ASSIGNDIV; return ASSIGNDIV; }
+"⫽="		{ yylval.ints = ASSIGNDIV; return ASSIGNDIV; }
 "%="		{ yylval.ints = ASSIGNMOD; return ASSIGNMOD; }
-"**="		{ yylval.ints = ASSIGNPOW; return ASSIGNPOW; }
+"↑="		{ yylval.ints = ASSIGNPOW; return ASSIGNPOW; }
 "<<="		{ yylval.ints = ASSIGNSHIFTL; return ASSIGNSHIFTL; }
+"⪡="		{ yylval.ints = ASSIGNSHIFTL; return ASSIGNSHIFTL; }
 ">>="		{ yylval.ints = ASSIGNSHIFTR; return ASSIGNSHIFTR; }
+"⪢="		{ yylval.ints = ASSIGNSHIFTR; return ASSIGNSHIFTR; }
 "^="		{ yylval.ints = ASSIGNLXOR; return ASSIGNLXOR; }
 "&="		{ yylval.ints = ASSIGNLAND; return ASSIGNLAND; }
 "|="		{ yylval.ints = ASSIGNLOR; return ASSIGNLOR; }
@@ -386,9 +395,13 @@
 "+"		{ yylval.ints = PLUS; return PLUS; }
 "-"		{ yylval.ints = MINUS; return MINUS; }
 "*"		{ yylval.ints = TIMES; return TIMES; }
+"×"		{ yylval.ints = TIMES; return TIMES; }
 "/"		{ yylval.ints = DIVIDE; return DIVIDE; }
+"÷"		{ yylval.ints = DIVIDE; return DIVIDE; }
 "//"		{ yylval.ints = DIV; return DIV; }
+"⫽"		{ yylval.ints = DIV; return DIV; }
 "**"		{ yylval.ints = STARSTAR; return STARSTAR; }
+"↑"		{ yylval.ints = STARSTAR; return STARSTAR; }
 "%"		{ yylval.ints = MOD; return MOD; }
 "!"		{ yylval.ints = BANG; return BANG; }
 "#"		{ yylval.ints = POUND; return POUND; }
@@ -396,23 +409,35 @@
 "|"		{ yylval.ints = LOR; return LOR; }
 "^"		{ yylval.ints = LXOR; return LXOR; }
 "~"		{ yylval.ints = LNOT; return LNOT; }
+"¬"		{ yylval.ints = LNOT; return LNOT; }
 "++"		{ yylval.ints = INC; return INC; }
+"⧺"		{ yylval.ints = INC; return INC; }
 "--"		{ yylval.ints = DEC; return DEC; }
 "=="		{ yylval.ints = EQ; return EQ; }
 "!="		{ yylval.ints = NE; return NE; }
+"≠"		{ yylval.ints = NE; return NE; }
 "<"		{ yylval.ints = LT; return LT; }
 ">"		{ yylval.ints = GT; return GT; }
 "<="		{ yylval.ints = LE; return LE; }
+"≤"		{ yylval.ints = LE; return LE; }
 ">="		{ yylval.ints = GE; return GE; }
+"≥"		{ yylval.ints = GE; return GE; }
 "&&"		{ yylval.ints = AND; return AND; }
+"∧"		{ yylval.ints = AND; return AND; }
 "||"		{ yylval.ints = OR; return OR; }
+"∨"		{ yylval.ints = OR; return OR; }
 "<<"		{ yylval.ints = SHIFTL; return SHIFTL; }
+"⪡"		{ yylval.ints = SHIFTL; return SHIFTL; }
 ">>"		{ yylval.ints = SHIFTR; return SHIFTR; }
+"⪢"		{ yylval.ints = SHIFTR; return SHIFTR; }
 "?"		{ yylval.ints = QUEST; return QUEST; }
 "::"		{ yylval.ints = COLONCOLON; return COLONCOLON; }
 ":"		{ yylval.ints = COLON; return COLON; }
+"²"		{ yylval.ints = POW2; return POW2; }
+"³"		{ yylval.ints = POW3; return POW3; }
 " "		;
 "\t"		;
+"\r"		;
 \'([^\n\']|\\\')*\'	{
 			ENTER ();
 			char	 *s;

Index: mem.h
===================================================================
RCS file: /local/src/CVS/nickle/mem.h,v
retrieving revision 1.15
retrieving revision 1.16
diff -u -d -r1.15 -r1.16
--- mem.h	10 Aug 2004 17:45:40 -0000	1.15
+++ mem.h	17 Oct 2004 23:34:34 -0000	1.16
@@ -122,7 +122,7 @@
 
 #define REFERENCE(o)	    STACK_PUSH(MemStack, (o))
 #define ENTER()		    StackPointer    __stackPointer = STACK_TOP(MemStack)
-#define ALLOCATE(type,size) MemAllocateRef(type,size);
+#define ALLOCATE(type,size) MemAllocateRef(type,size)
 #define EXIT()		    STACK_RESET(MemStack, __stackPointer)
 #define RETURN(r)	    return (STACK_RETURN (MemStack, __stackPointer, (r)))
 #define NOREFRETURN(r)	    return (EXIT(), (r))




More information about the Commit mailing list