commit d66a859bb372a029a5741238e93752fe38e16abe
Author:     Mauro Talevi <mauro.tal...@aquilonia.org>
AuthorDate: Wed Mar 28 14:22:32 2012 +0200
Commit:     Mauro Talevi <mauro.tal...@aquilonia.org>
CommitDate: Wed Mar 28 14:22:32 2012 +0200

    JBEHAVE-751:  Updated EBNF grammar.

diff --git a/distribution/src/site/content/grammar.html 
b/distribution/src/site/content/grammar.html
index c320f78..58b044d 100755
--- a/distribution/src/site/content/grammar.html
+++ b/distribution/src/site/content/grammar.html
@@ -13,7 +13,7 @@
 ; JBehave Grammar expressed in EBNF 
(http://en.wikipedia.org/wiki/Extended_Backus%E2%80%93Naur_Form)
 
 ; The story describes a feature via description, narrative and a set of 
scenarios
-Story := Description? Narrative? Scenario+ ;
+Story := Description? Meta? Narrative? Scenario+ ;
 
 ; The Description is expressed by any sequence of words that must not contain 
any keywords at start of lines.
 Description := (Word Space?)* ;
@@ -22,6 +22,14 @@ Description := (Word Space?)* ;
 ; It is followed by the narrative elements
 Narrative:= "Narrative:" InOrderTo AsA IWantTo ;
 
+; The meta is identified by keyword "Meta:" (or equivalent in I18n-ed locale),
+; It is followed by any number of meta elements
+Meta:= "Meta:" (MetaElement)* ;
+
+; The meta element is identified by keyword "@" (or equivalent in I18n-ed 
locale),
+; It is followed by a name-value pair, where the value can be empty or have 
multiple words
+MetaElement:= "@" Space? Word Space (Word Space?)* ;
+
 ; The narrative elements
 InOrderTo:= "In order to" NarrativeElementContent ;
 AsA:= "As a" NarrativeElementContent ;
@@ -42,7 +50,7 @@ NarrativeStartingWord :== ("In order to" | "As a" | "I want 
to" ) ;
 ; that must not contain any keywords at start of lines.
 ; It is followed by one or more Steps. 
 ; Finally the optional Examples table, which if present will execute the 
scenario for as many table rows present
-Scenario := "Scenario:"? Title? GivenStories? Step+ Examples? ;
+Scenario := "Scenario:"? Title? Meta? GivenStories? Step+ Examples? ;
 
 ; The free-text description 
 Title := (Word Space?)* ;
diff --git a/jbehave-core/src/main/java/org/jbehave/core/parsers/grammar.ebnf 
b/jbehave-core/src/main/java/org/jbehave/core/parsers/grammar.ebnf
index cfc8544..cee1cf2 100755
--- a/jbehave-core/src/main/java/org/jbehave/core/parsers/grammar.ebnf
+++ b/jbehave-core/src/main/java/org/jbehave/core/parsers/grammar.ebnf
@@ -1,7 +1,7 @@
 ; JBehave Grammar expressed in EBNF 
(http://en.wikipedia.org/wiki/Extended_Backus%E2%80%93Naur_Form)
 
-; The story describes a feature via optional description and narrative, and a 
set of scenarios
-Story := Description? Narrative? Scenario+ ;
+; The story describes a feature via description, narrative and a set of 
scenarios
+Story := Description? Meta? Narrative? Scenario+ ;
 
 ; The Description is expressed by any sequence of words that must not contain 
any keywords at start of lines.
 Description := (Word Space?)* ;
@@ -10,6 +10,14 @@ Description := (Word Space?)* ;
 ; It is followed by the narrative elements
 Narrative:= "Narrative:" InOrderTo AsA IWantTo ;
 
+; The meta is identified by keyword "Meta:" (or equivalent in I18n-ed locale),
+; It is followed by any number of meta elements
+Meta:= "Meta:" (MetaElement)* ;
+
+; The meta element is identified by keyword "@" (or equivalent in I18n-ed 
locale),
+; It is followed by a name-value pair, where the value can be empty or have 
multiple words
+MetaElement:= "@" Space? Word Space (Word Space?)* ;
+
 ; The narrative elements
 InOrderTo:= "In order to" NarrativeElementContent ;
 AsA:= "As a" NarrativeElementContent ;
@@ -30,7 +38,7 @@ NarrativeStartingWord :== ("In order to" | "As a" | "I want 
to" ) ;
 ; that must not contain any keywords at start of lines.
 ; It is followed by one or more Steps. 
 ; Finally the optional Examples table, which if present will execute the 
scenario for as many table rows present
-Scenario := "Scenario:"? Title? GivenStories? Step+ Examples? ;
+Scenario := "Scenario:"? Title? Meta? GivenStories? Step+ Examples? ;
 
 ; The free-text description 
 Title := (Word Space?)* ;



Reply via email to