aboutsummaryrefslogtreecommitdiff
path: root/GnuLdParser.g4
diff options
context:
space:
mode:
authorTrygve Laugstøl <trygvis@inamo.no>2016-07-17 16:03:47 +0200
committerTrygve Laugstøl <trygvis@inamo.no>2016-07-17 16:03:47 +0200
commit0f57cc9750282ce0284fe69b06f161dea2bfc8cb (patch)
tree50afd51fec2d05752cc49441ae47c40aa831cf84 /GnuLdParser.g4
parentc5e53ec8da9b11e351893742096f76e2bceb5730 (diff)
downloadelfinfo-0f57cc9750282ce0284fe69b06f161dea2bfc8cb.tar.gz
elfinfo-0f57cc9750282ce0284fe69b06f161dea2bfc8cb.tar.bz2
elfinfo-0f57cc9750282ce0284fe69b06f161dea2bfc8cb.tar.xz
elfinfo-0f57cc9750282ce0284fe69b06f161dea2bfc8cb.zip
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.
Diffstat (limited to 'GnuLdParser.g4')
-rw-r--r--GnuLdParser.g418
1 files changed, 12 insertions, 6 deletions
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