--- a/rdf-turtle/turtle.bnf Mon Apr 30 18:13:28 2012 -0700
+++ b/rdf-turtle/turtle.bnf Mon Apr 30 18:24:16 2012 -0700
@@ -66,60 +66,47 @@
[18] PREFIX ::= "@prefix"
-[70s] IRIREF ::= "<" ( [^<>\"{}|^`\\] - [#x00-#x20] | UCHAR )* ">"
-
-[71s] PNAME_NS ::= (PN_PREFIX)? ":"
+[132s] IRIREF ::= '<' ([^<>"{}|^`\]-[#x00-#x20])* | UCHAR '>'
-[72s] PNAME_LN ::= PNAME_NS PN_LOCAL
+[133s] PNAME_NS ::= PN_PREFIX? ":"
-[73s] BLANK_NODE_LABEL ::= "_:" PN_LOCAL
+[134s] PNAME_LN ::= PNAME_NS PN_LOCAL
-[76s] LANGTAG ::= BASE
+[135s] BLANK_NODE_LABEL ::= '_:' ( PN_CHARS_U | [0-9] ) ((PN_CHARS|'.')* PN_CHARS)?
+
+[19] LANGTAG ::= BASE
| PREFIX
| "@" [a-zA-Z]+ ( "-" [a-zA-Z0-9]+ )*
-[77s] INTEGER ::= [0-9]+
+[20] INTEGER ::= [+-]? [0-9]+
-[78s] DECIMAL ::= [0-9]+ "." [0-9]+
+[21] DECIMAL ::= [+-]? [0-9]+ "." [0-9]+
| "." [0-9]+
-[79s] DOUBLE ::= [0-9]+ "." [0-9]+ EXPONENT
+[22] DOUBLE ::= [+-]? [0-9]+ "." [0-9]+ EXPONENT
| "." ( [0-9] )+ EXPONENT
| ( [0-9] )+ EXPONENT
-[80s] INTEGER_POSITIVE ::= "+" INTEGER
-
-[81s] DECIMAL_POSITIVE ::= "+" DECIMAL
-
-[82s] DOUBLE_POSITIVE ::= "+" DOUBLE
-
-[83s] INTEGER_NEGATIVE ::= "-" INTEGER
-
-[84s] DECIMAL_NEGATIVE ::= "-" DECIMAL
+
+[148s] EXPONENT ::= [eE] [+-]? [0-9]+
-[85s] DOUBLE_NEGATIVE ::= "-" DOUBLE
-
-[86s] EXPONENT ::= [eE] [+-]? [0-9]+
+[149s] STRING_LITERAL1 ::= '"' ( ( [^#x27#x5C#xA#xD]) | ECHAR | UCHAR )* '"'
-[148s] STRING_LITERAL1 ::= '"' ( ( [^#x27#x5C#xA#xD]) | ECHAR | UCHAR )* '"'
+[150s] STRING_LITERAL2 ::= '"' ( ( [^#x22#x5C#xA#xD]) | ECHAR | UCHAR )* '"'
-[149s] STRING_LITERAL2 ::= '"' ( ( [^#x22#x5C#xA#xD]) | ECHAR | UCHAR )* '"'
+[151s] STRING_LITERAL_LONG1 ::= "'''" ( ( "'" | "''" )? ( [^'\] | ECHAR | UCHAR ) )* "'''"
-[89s] STRING_LITERAL_LONG1 ::= "'''" ( ( "'" | "''" )? ( [^'\\] | ECHAR | UCHAR ) )* "'''"
-
-[90s] STRING_LITERAL_LONG2 ::= '"""' ( ( '"' | '""' )? ( [^\"\\] | ECHAR | UCHAR ) )* '"""'
+[152s] STRING_LITERAL_LONG2 ::= '"""' ( ( '"' | '""' )? ( [^"\] | ECHAR | UCHAR ) )* '"""'
[19] UCHAR ::= ( "\\u" HEX HEX HEX HEX )
| ( "\\U" HEX HEX HEX HEX HEX HEX HEX HEX )
-[91s] ECHAR ::= "\\" [tbnrf\\\"']
-
-[92s] NIL ::= "(" (WS)* ")"
+[153s] ECHAR ::= "\" [tbnrf\"']
-[93s] WS ::= " "
- | "\t"
- | "\r"
- | "\n"
-[94s] ANON ::= "[" (WS)* "]"
+[154s] NIL ::= "(" (WS)* ")"
-[95s] PN_CHARS_BASE ::= [A-Z]
+[155s] WS ::= #x20 | #x9 | #xD | #xA
+
+[156s] ANON ::= "[" (WS)* "]"
+
+[157s] PN_CHARS_BASE ::= [A-Z]
| [a-z]
| [#00C0-#00D6]
| [#00D8-#00F6]
@@ -133,23 +120,23 @@
| [#F900-#FDCF]
| [#FDF0-#FFFD]
| [#10000-#EFFFF]
-[96s] PN_CHARS_U ::= PN_CHARS_BASE
+[158s] PN_CHARS_U ::= PN_CHARS_BASE
| '_'
| ':'
-[98s] PN_CHARS ::= PN_CHARS_U
+[160s] PN_CHARS ::= PN_CHARS_U
| "-"
| [0-9]
| #00B7
| [#0300-#036F]
| [#203F-#2040]
-[99s] PN_PREFIX ::= PN_CHARS_BASE ( ( PN_CHARS | "." )* PN_CHARS )?
+[161s] PN_PREFIX ::= PN_CHARS_BASE ( ( PN_CHARS | "." )* PN_CHARS )?
-[100s] PN_LOCAL ::= ( PN_CHARS_U | [0-9] | PLX ) ( ( PN_CHARS | '.' | PLX )* ( PN_CHARS | PLX ) ) ?
+[162s] PN_LOCAL ::= ( PN_CHARS_U | [0-9] | PLX ) ( ( PN_CHARS | '.' | PLX )* ( PN_CHARS | PLX ) ) ?
-[160s] PLX ::= PERCENT | PN_LOCAL_ESC
+[163s] PLX ::= PERCENT | PN_LOCAL_ESC
-[161s] PERCENT ::= '%' HEX HEX
+[164s] PERCENT ::= '%' HEX HEX
-[162s] HEX ::= [0-9] | [A-F] | [a-f]
+[165s] HEX ::= [0-9] | [A-F] | [a-f]
-[163s] PN_LOCAL_ESC ::= '\\' ( '_' | '~' | '.' | '-' | '!' | '$' | '&' | "'" | '(' | ')' | '*' | '+' | ',' | ';' | '=' | '/' | '?' | '#' | '@' | '%' )
\ No newline at end of file
+[166s] PN_LOCAL_ESC ::= '\' ( '_' | '~' | '.' | '-' | '!' | '$' | '&' | "'" | '(' | ')' | '*' | '+' | ',' | ';' | '=' | '/' | '?' | '#' | '@' | '%' )
\ No newline at end of file