From 0f57cc9750282ce0284fe69b06f161dea2bfc8cb Mon Sep 17 00:00:00 2001 From: Trygve Laugstøl Date: Sun, 17 Jul 2016 16:03:47 +0200 Subject: parser/lexer: o Support special '/DISCARD/' as NAME. o Add 'SORT' as a token. It is equivalent with SORT_BY_NAME. The new rule sort_by_name coverts both. Ld: o Don't die on unknown sections, they can be referenced before declared. Doesn't matter for this app anyway. --- GnuLdParser.g4 | 18 ++++++++++++------ 1 file changed, 12 insertions(+), 6 deletions(-) (limited to 'GnuLdParser.g4') diff --git a/GnuLdParser.g4 b/GnuLdParser.g4 index 36d4515..0d2bf4b 100644 --- a/GnuLdParser.g4 +++ b/GnuLdParser.g4 @@ -213,17 +213,23 @@ wildcard_name: | QUESTION ; +// SORT(*) and SORT_BY_NAME(*) both mean the same +sort_by_name: + SORT + | SORT_BY_NAME + ; + wildcard_spec: wildcard_name | EXCLUDE_FILE LPAREN exclude_name_list RPAREN wildcard_name - | SORT_BY_NAME LPAREN wildcard_name RPAREN + | sort_by_name LPAREN wildcard_name RPAREN | SORT_BY_ALIGNMENT LPAREN wildcard_name RPAREN | SORT_NONE LPAREN wildcard_name RPAREN - | SORT_BY_NAME LPAREN SORT_BY_ALIGNMENT LPAREN wildcard_name RPAREN RPAREN - | SORT_BY_NAME LPAREN SORT_BY_NAME LPAREN wildcard_name RPAREN RPAREN - | SORT_BY_ALIGNMENT LPAREN SORT_BY_NAME LPAREN wildcard_name RPAREN RPAREN + | sort_by_name LPAREN SORT_BY_ALIGNMENT LPAREN wildcard_name RPAREN RPAREN + | sort_by_name LPAREN sort_by_name LPAREN wildcard_name RPAREN RPAREN + | SORT_BY_ALIGNMENT LPAREN sort_by_name LPAREN wildcard_name RPAREN RPAREN | SORT_BY_ALIGNMENT LPAREN SORT_BY_ALIGNMENT LPAREN wildcard_name RPAREN RPAREN - | SORT_BY_NAME LPAREN EXCLUDE_FILE LPAREN exclude_name_list RPAREN wildcard_name RPAREN + | sort_by_name LPAREN EXCLUDE_FILE LPAREN exclude_name_list RPAREN wildcard_name RPAREN | SORT_BY_INIT_PRIORITY LPAREN wildcard_name RPAREN ; @@ -265,7 +271,7 @@ statement: | CREATE_OBJECT_SYMBOLS | SEMICOLON | CONSTRUCTORS - | SORT_BY_NAME LPAREN CONSTRUCTORS RPAREN + | sort_by_name LPAREN CONSTRUCTORS RPAREN | input_section_spec | length LPAREN mustbe_exp RPAREN | FILL LPAREN fill_exp RPAREN -- cgit v1.2.3