diff --git a/libwccl/parser/Parser.cpp b/libwccl/parser/Parser.cpp
index 54813edf5482b18d0079cb71347386819b8ae79a..0e9643ce7ad232cffe64dc53c44419a5c186f1ff 100644
--- a/libwccl/parser/Parser.cpp
+++ b/libwccl/parser/Parser.cpp
@@ -411,7 +411,7 @@ boost::shared_ptr<TagRuleSequence> Parser::parseTagRuleSequence(
 }
 
 /**
- * @desc Parse a sequence rules. Runs parse_rule_sequence rule in the parser
+ * @desc Parse a sequence rules. Runs parse_tag_rule_sequence rule in the parser
  *       grammar.
  * @arg istr input stream with writed rules
  * @return the parsed rule sequence via a shared pointer
@@ -424,7 +424,7 @@ boost::shared_ptr<TagRuleSequence> Parser::parseTagRuleSequence(
 	boost::shared_ptr<TagRuleSequence> res;
 
 	try {
-		res = parser.parse_rule_sequence(tagset_);
+		res = parser.parse_tag_rule_sequence(tagset_);
 	} catch (antlr::MismatchedTokenException &e) {
 		throw ParserException(
 				e.getFileLineColumnString() + " " + e.getMessage()
@@ -467,7 +467,7 @@ boost::shared_ptr<TagRule> Parser::parseSingleRule(
 }
 
 /**
- * @desc Parse a single rule. Runs parse_single_rule rule in the parser
+ * @desc Parse a single rule. Runs parse_single_tag_rule rule in the parser
  *       grammar.
  * @arg istr input stream with writed rule
  * @return the parsed rule via a shared pointer
@@ -480,7 +480,7 @@ boost::shared_ptr<TagRule> Parser::parseSingleRule(
 	boost::shared_ptr<TagRule> res;
 
 	try {
-		res = parser.parse_single_rule(tagset_);
+		res = parser.parse_single_tag_rule(tagset_);
 	} catch (antlr::MismatchedTokenException &e) {
 		throw ParserException(
 				e.getFileLineColumnString() + " " + e.getMessage()
diff --git a/libwccl/parser/grammar.g b/libwccl/parser/grammar.g
index 39b47dc8c9dd92d87e73e2bd78e0257de5de0728..246dd17d218b223189e0562329960ea9dcc904d3 100644
--- a/libwccl/parser/grammar.g
+++ b/libwccl/parser/grammar.g
@@ -257,24 +257,24 @@ parse_match_operator
 // ----------------------------------------------------------------------------
 // Rule for parsing single WCCL Rule
 // Returns boost::shared_ptr<TagRule>
-parse_single_rule
+parse_single_tag_rule
 	[const Corpus2::Tagset &tagset]
 	returns [boost::shared_ptr<TagRule> rle]
 {	
 	ParsingScope scope(tagset);
 }
-	: rle = rule [scope]
+	: rle = tag_rule [scope]
 ;
 
-// Rule for parsing rules section in the wccl file
+// Rule for parsing tag rule section in the wccl file
 // Returns boost::shared_ptr<TagRuleSequence>
-parse_rule_sequence
+parse_tag_rule_sequence
 	[const Corpus2::Tagset& tagset]
 	returns [boost::shared_ptr<TagRuleSequence> rule_seq]
 {
 	ParsingScope scope(tagset);
 }
-	: rule_seq = rules[scope]
+	: rule_seq = tag_rules[scope]
 ;
 
 // ----------------------------------------------------------------------------
@@ -303,7 +303,7 @@ parse_wccl_file
 }
 	: (any_operator_section [*wccl_file] )*
 	  (
-		rule_seq = parse_rule_sequence [tagset] { wccl_file->set_tag_rules(rule_seq); }
+		rule_seq = parse_tag_rule_sequence [tagset] { wccl_file->set_tag_rules(rule_seq); }
 		(any_operator_section [*wccl_file] )*
 	  )?
 	EOF
@@ -1977,7 +1977,7 @@ action_sequence
 // ----------------------------------------------------------------------------
 // Single rule:
 // 	rule(NAME, ACTIONS) or rule(NAME, COND, ACTIONS)
-rule
+tag_rule
 	[ParsingScope& scope]
 	returns [boost::shared_ptr<TagRule> rle]
 {
@@ -2022,7 +2022,7 @@ rule
 ;
 
 // Rule sequence
-rule_sequence
+tag_rule_sequence
 	[ParsingScope& scope]
 	returns [boost::shared_ptr<TagRuleSequence> rule_seq]
 {
@@ -2031,22 +2031,22 @@ rule_sequence
 
 	rule_seq.reset(new TagRuleSequence());
 }
-	: rle = rule [scope] {
+	: rle = tag_rule [scope] {
 		rule_seq->push_back(*rle);
 	}
 	(
-		COMMA rle = rule [scope] {
+		COMMA rle = tag_rule [scope] {
 			rule_seq->push_back(*rle);
 		}
 	)*
 ;
 
 // Temporary name. 
-// This is wrapper for rule_sequence in rules section in the wccl file
-rules
+// This is wrapper for tag_rule_sequence in rules section in the wccl file
+tag_rules
 	[ParsingScope& scope]
 	returns [boost::shared_ptr<TagRuleSequence> rule_seq]
-	: "rules" LPAREN rule_seq = rule_sequence [scope] RPAREN {
+	: "tag_rules" LPAREN rule_seq = tag_rule_sequence [scope] RPAREN {
 		//
 	}
 ;
diff --git a/tests/rules-data/tag/manyrules/prep-agr.ccl b/tests/rules-data/tag/manyrules/prep-agr.ccl
index a3d7f9c29d9444c47d147ea41bed575294b561f6..7dbd6f33a2890e97eb9a97e3584530a39d60d4a7 100644
--- a/tests/rules-data/tag/manyrules/prep-agr.ccl
+++ b/tests/rules-data/tag/manyrules/prep-agr.ccl
@@ -1,4 +1,4 @@
-rules(
+tag_rules(
 	rule("prep-case", // prep [with-case]
 		and(
 			equal(class[-1], prep),
diff --git a/tests/rules-data/tag/relabel-enc/enc.ccl b/tests/rules-data/tag/relabel-enc/enc.ccl
index 68687308d51a169e43084172a340a65f32c72417..65f6cddf94df4fc1d2d3a624f23609f174ad868c 100644
--- a/tests/rules-data/tag/relabel-enc/enc.ccl
+++ b/tests/rules-data/tag/relabel-enc/enc.ccl
@@ -1,4 +1,4 @@
-rules(
+tag_rules(
 	rule("enc_suger",
 		in({ger,subst}, class[0]),
 		relabel({ger}, equal(class[0], {subst}))
diff --git a/tests/rules-data/tag/select/sel_agr.ccl b/tests/rules-data/tag/select/sel_agr.ccl
index 6f8fc99bab98ecf9f988e57c9e481097d9c052fc..99174ac3517b472197a392d9430d4ef0565dab26 100644
--- a/tests/rules-data/tag/select/sel_agr.ccl
+++ b/tests/rules-data/tag/select/sel_agr.ccl
@@ -1,4 +1,4 @@
-rules(
+tag_rules(
 	rule("sel-agr0",
 		and(
 			equal(class[0], subst),
diff --git a/tests/rules-data/tag/select/seln.ccl b/tests/rules-data/tag/select/seln.ccl
index 8cafdf86db0153df1a49bc7c062eb988f30a27e3..2440653ea652995ebdb183f1d8bcc9e021564704 100644
--- a/tests/rules-data/tag/select/seln.ccl
+++ b/tests/rules-data/tag/select/seln.ccl
@@ -1,4 +1,4 @@
-rules(
+tag_rules(
 	rule("sel-n",
 		select(
 			equal(gnd[0], {n})
diff --git a/tests/rules-data/tag/select/seln1.ccl b/tests/rules-data/tag/select/seln1.ccl
index e8ccbf954b69c000f8efde82cbff4edd507a3cd4..e1a5bf4918f754e8f19fd96f6ec81992d50df60b 100644
--- a/tests/rules-data/tag/select/seln1.ccl
+++ b/tests/rules-data/tag/select/seln1.ccl
@@ -1,4 +1,4 @@
-rules(
+tag_rules(
 	rule("sel-n",
 		and(equal(base[0], "i")),
 		select(
diff --git a/tests/rules-data/tag/unify/agreed.ccl b/tests/rules-data/tag/unify/agreed.ccl
index 77fb3e4ea6f725d6e328aad9c6fe114a87b5a2db..f52aaf3648b7bedff89cff9120484086b75be135 100644
--- a/tests/rules-data/tag/unify/agreed.ccl
+++ b/tests/rules-data/tag/unify/agreed.ccl
@@ -1,4 +1,4 @@
-rules(
+tag_rules(
 	rule("unify3-case",
 		not(
 			equal(cas[0], {}),
diff --git a/tests/rules-data/tag/unify2/agr.ccl b/tests/rules-data/tag/unify2/agr.ccl
index d0eb115e870f4d6379e49fb4861444b51dfa6c19..d23f84b1058f79833fdf25bc2a007d31990ed59d 100644
--- a/tests/rules-data/tag/unify2/agr.ccl
+++ b/tests/rules-data/tag/unify2/agr.ccl
@@ -1,4 +1,4 @@
-rules(
+tag_rules(
 	rule("agr3",
 		unify(0, 2, {nmb, gnd, cas})
 	)
diff --git a/tests/rules-data/tag/zero/rule.ccl b/tests/rules-data/tag/zero/rule.ccl
index d9689adeecdde695a41c3b366f1544147cd6552e..1c009c1295ec0793a1ca1bc5f35bd3336165e340 100644
--- a/tests/rules-data/tag/zero/rule.ccl
+++ b/tests/rules-data/tag/zero/rule.ccl
@@ -1,4 +1,4 @@
-rules(
+tag_rules(
 	rule("rule1",
 	in(class[0], {conj, qub}),
 	delete(