summary refs log tree commit diff
diff options
context:
space:
mode:
-rw-r--r--lisc/lisc.h2
-rw-r--r--lisc/parse.c9
2 files changed, 10 insertions, 1 deletions
diff --git a/lisc/lisc.h b/lisc/lisc.h
index abb025f..2219628 100644
--- a/lisc/lisc.h
+++ b/lisc/lisc.h
@@ -50,7 +50,7 @@ enum {
 	OSub,
 	ODiv,
 	OMod,
-	OConst,
+	OCopy,
 
 	/* reserved instructions */
 	OX86Div,
diff --git a/lisc/parse.c b/lisc/parse.c
index 7cd3d7a..b54437b 100644
--- a/lisc/parse.c
+++ b/lisc/parse.c
@@ -22,6 +22,7 @@ enum PState {
 
 enum Token {
 	TXXX,
+	TCopy,
 	TAdd,
 	TSub,
 	TDiv,
@@ -93,6 +94,7 @@ lex()
 		char *str;
 		Token tok;
 	} tmap[] = {
+		{ "copy", TCopy },
 		{ "add", TAdd },
 		{ "sub", TSub },
 		{ "div", TDiv },
@@ -121,6 +123,9 @@ lex()
 		return TRParen;
 	case '=':
 		return TEq;
+	case '#':
+		while (fgetc(inf) != '\n')
+			;
 	case '\n':
 		lnum++;
 		return TNL;
@@ -352,6 +357,10 @@ parseline(PState ps)
 	r = varref(tokval.str);
 	expect(TEq);
 	switch (next()) {
+	case TCopy:
+		op = OCopy;
+		j = 1;
+		break;
 	case TAdd:
 		op = OAdd;
 		j = 2;