Jelajahi Sumber

[lexer.h] Implementig parsing for defines

Vinicius Teshima 1 tahun lalu
induk
melakukan
d50d422a55
1 mengubah file dengan 9 tambahan dan 1 penghapusan
  1. 9 1
      src/lexer.h

+ 9 - 1
src/lexer.h

@@ -370,7 +370,15 @@ lexer_handle_pp(struct lexer *l, struct lexer_err *err)
 		goto ret_ok;
 		break;
 
-	case TT_PP_DEFINE: goto ret_illegal; break;
+	case TT_PP_DEFINE:
+		ident = lexer_read_until_or(l, '\n', '\\', &reached_limit);
+		if ( reached_limit == true ) {
+			goto ret_illegal;	
+		}
+
+		t = token_create(tt, ident);
+		goto ret_ok;
+		break;
 	case TT_PP_IFNDEF: goto ret_illegal; break;
 	case TT_PP_IFDEF: goto ret_illegal; break;
 	case TT_PP_IF: goto ret_illegal; break;