shithub: rgbds

Download patch

ref: bd244e68654533cd817aba5794c5669707cd4578
parent: a70ecba06f804990400326d0df079cd41e2ef096
author: ISSOtm <eldredhabert0@gmail.com>
date: Fri Jan 1 21:42:44 EST 2021

Remove deprecated features

Trimming off the fat!
- GLOBAL and XDEF keywords
- Colon-less global labels
- *-comments

--- a/src/asm/lexer.c
+++ b/src/asm/lexer.c
@@ -1611,18 +1611,6 @@
 		switch (c) {
 		/* Ignore whitespace and comments */
 
-		case '*':
-			if (!lexerState->atLineStart) { /* Either MUL or EXP */
-				secondChar = peek(0);
-				if (secondChar == '*') {
-					shiftChars(1);
-					return T_OP_EXP;
-				}
-				return T_OP_MUL;
-			}
-			warning(WARNING_OBSOLETE,
-				"'*' is deprecated for comments, please use ';' instead\n");
-			/* fallthrough */
 		case ';':
 			discardComment();
 			/* fallthrough */
@@ -1658,17 +1646,24 @@
 			return T_COMMA;
 
 		/* Handle ambiguous 1- or 2-char tokens */
+
+		case '*': /* Either MUL or EXP */
+			if (peek(0) == '*') {
+				shiftChars(1);
+				return T_OP_EXP;
+			}
+			return T_OP_MUL;
+
 		case '/': /* Either division or a block comment */
-			secondChar = peek(0);
-			if (secondChar == '*') {
+			if (peek(0) == '*') {
 				shiftChars(1);
 				discardBlockComment();
 				break;
 			}
 			return T_OP_DIV;
+
 		case '|': /* Either binary or logical OR */
-			secondChar = peek(0);
-			if (secondChar == '|') {
+			if (peek(0) == '|') {
 				shiftChars(1);
 				return T_OP_LOGICOR;
 			}
@@ -1675,8 +1670,7 @@
 			return T_OP_OR;
 
 		case '=': /* Either SET alias, or EQ */
-			secondChar = peek(0);
-			if (secondChar == '=') {
+			if (peek(0) == '=') {
 				shiftChars(1);
 				return T_OP_LOGICEQU;
 			}
@@ -1683,30 +1677,31 @@
 			return T_POP_EQUAL;
 
 		case '<': /* Either a LT, LTE, or left shift */
-			secondChar = peek(0);
-			if (secondChar == '=') {
+			switch (peek(0)) {
+			case '=':
 				shiftChars(1);
 				return T_OP_LOGICLE;
-			} else if (secondChar == '<') {
+			case '<':
 				shiftChars(1);
 				return T_OP_SHL;
+			default:
+				return T_OP_LOGICLT;
 			}
-			return T_OP_LOGICLT;
 
 		case '>': /* Either a GT, GTE, or right shift */
-			secondChar = peek(0);
-			if (secondChar == '=') {
+			switch (peek(0)) {
+			case '=':
 				shiftChars(1);
 				return T_OP_LOGICGE;
-			} else if (secondChar == '>') {
+			case '>':
 				shiftChars(1);
 				return T_OP_SHR;
+			default:
+				return T_OP_LOGICGT;
 			}
-			return T_OP_LOGICGT;
 
 		case '!': /* Either a NEQ, or negation */
-			secondChar = peek(0);
-			if (secondChar == '=') {
+			if (peek(0) == '=') {
 				shiftChars(1);
 				return T_OP_LOGICNE;
 			}
--- a/src/asm/main.c
+++ b/src/asm/main.c
@@ -108,9 +108,6 @@
 			error("Must specify exactly 2 characters for option 'b'\n");
 		}
 		break;
-	case 'z':
-		warning(WARNING_OBSOLETE, "Option 'z' is a deprecated alias for 'p'\n");
-		/* fallthrough */
 	case 'p':
 		if (strlen(&s[1]) <= 2) {
 			int result;
--- a/src/asm/parser.y
+++ b/src/asm/parser.y
@@ -568,10 +568,6 @@
 		| T_LOCAL_ID {
 			sym_AddLocalLabel($1);
 		}
-		| T_LABEL {
-			warning(WARNING_OBSOLETE, "Non-local labels without a colon are deprecated\n");
-			sym_AddLabel($1);
-		}
 		| T_LOCAL_ID T_COLON {
 			sym_AddLocalLabel($1);
 		}
@@ -898,17 +894,7 @@
 purge_list_entry : scoped_id	{ sym_Purge($1); }
 ;
 
-export		: export_token export_list
-;
-
-export_token	: T_POP_EXPORT
-		| T_POP_GLOBAL {
-			warning(WARNING_OBSOLETE,
-				"`GLOBAL` is a deprecated synonym for `EXPORT`\n");
-		}
-		| T_POP_XDEF {
-			warning(WARNING_OBSOLETE, "`XDEF` is a deprecated synonym for `EXPORT`\n");
-		}
+export		: T_POP_EXPORT export_list
 ;
 
 export_list	: export_list_entry