[apparmor] [PATCH 01/13] Rework the definition of ID and POST_VAR_ID to use a define for the charset

John Johansen john.johansen at canonical.com
Tue Feb 14 17:32:23 UTC 2012


ID and POST_VAR_ID define a set of characters that is reused, pull this
out to avoid making mistakes when updating the character set.

Signed-off-by: John Johansen <john.johansen at canonical.com>
---
 parser/parser_lex.l |   24 +++++++++++++++---------
 1 files changed, 15 insertions(+), 9 deletions(-)

diff --git a/parser/parser_lex.l b/parser/parser_lex.l
index 1d59f43..a246d9f 100644
--- a/parser/parser_lex.l
+++ b/parser/parser_lex.l
@@ -179,12 +179,18 @@ MODE_CHARS 	([RrWwaLlMmkXx])|(([Pp]|[Cc])[Xx])|(([Pp]|[Cc])?([IiUu])[Xx])
 MODES		{MODE_CHARS}+
 WS		[[:blank:]]
 NUMBER		[[:digit:]]+
-ID 		[^ \t\n"!,]|(,[^ \t\n"!])
-POST_VAR_ID 	[^ =\+\t\n"!,]|(,[^ =\+\t\n"!])
-IP		{NUMBER}\.{NUMBER}\.{NUMBER}\.{NUMBER}
+
+ID_CHARS	[^ \t\n"!,]
+ID 		{ID_CHARS}|(,{ID_CHARS})
+IDS		{ID}+
+POST_VAR_ID_CHARS	[^ \t\n"!,]{-}[=\+]
+POST_VAR_ID 	{POST_VAR_ID_CHARS}|(,{POST_VAR_ID_CHARS})
+
 ALLOWED_QUOTED_ID 	[^\0"]|\\\"
 QUOTED_ID	\"{ALLOWED_QUOTED_ID}*\"
 
+IP		{NUMBER}\.{NUMBER}\.{NUMBER}\.{NUMBER}
+
 HAT		hat{WS}*
 PROFILE		profile{WS}*
 KEYWORD         [[:alpha:]_]+
@@ -246,9 +252,9 @@ LT_EQUAL	<=
 }
 
 <SUB_NAME>{
-	({ID}+|{QUOTED_ID})	{
+	({IDS}|{QUOTED_ID})	{
 			  /* Ugh, this is a gross hack. I used to use
-			   * {ID}+ to match all TOK_IDs, but that would
+			   * {IDS} to match all TOK_IDs, but that would
 			   * also match TOK_MODE + TOK_END_OF_RULE
 			   * without any spaces in between (because it's
 			   * a longer match). So now, when I want to
@@ -311,7 +317,7 @@ LT_EQUAL	<=
 <ASSIGN_MODE>{
 	{WS}+		{ DUMP_PREPROCESS; /* Eat whitespace */ }
 
-	({ID}+|{QUOTED_ID})		{
+	({IDS}|{QUOTED_ID})		{
 			DUMP_PREPROCESS;
 			yylval.var_val = processid(yytext, yyleng);
 			PDEBUG("Found assignment value: \"%s\"\n", yylval.var_val);
@@ -341,7 +347,7 @@ LT_EQUAL	<=
 <NETWORK_MODE>{
 	{WS}+		{ DUMP_PREPROCESS; /* Eat whitespace */ }
 
-	{ID}+		{
+	{IDS}		{
 			DUMP_PREPROCESS;
 			yylval.id = strdup(yytext);
 			return TOK_ID;
@@ -371,9 +377,9 @@ LT_EQUAL	<=
 			return TOK_ARROW;
 			}
 
-	({ID}+|{QUOTED_ID})	{
+	({IDS}|{QUOTED_ID})	{
 			  /* Ugh, this is a gross hack. I used to use
-			   * {ID}+ to match all TOK_IDs, but that would
+			   * {IDS} to match all TOK_IDs, but that would
 			   * also match TOK_MODE + TOK_END_OF_RULE
 			   * without any spaces in between (because it's
 			   * a longer match). So now, when I want to
-- 
1.7.9




More information about the AppArmor mailing list