Permalink
Switch branches/tags
Find file
Fetching contributors…
Cannot retrieve contributors at this time
2431 lines (2321 sloc) 70.8 KB
#Processed by Id: cwm.py,v 1.197 2007-12-13 15:38:39 syosi Exp
# using base file:///Users/gregg/Projects/swap/grammar/
# Notation3 generation by
# notation3.py,v 1.201 2010-10-23 04:14:48 timbl Exp
# Base was: file:///Users/gregg/Projects/swap/grammar/
@prefix : <http://www.w3.org/ns/formats/Turtle#> .
@prefix g: <http://www.w3.org/2000/10/swap/grammar/ebnf#> .
@prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> .
@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
@prefix re: <http://www.w3.org/2000/10/swap/grammar/regex#> .
@forSome <#_g0>,
<#_g1>,
<#_g2>,
<#_g3>,
<#_g4>,
<#_g5>,
<#_g6>,
<#_g7>,
<#_g8> .
"." g:follow "(",
"@base",
"@prefix",
"[",
:ANON,
:BLANK_NODE_LABEL,
:IRI_REF,
:PNAME_LN,
:PNAME_NS .
"a" g:follow "(",
"[",
"false",
"true",
:ANON,
:BLANK_NODE_LABEL,
:DECIMAL,
:DECIMAL_NEGATIVE,
:DECIMAL_POSITIVE,
:DOUBLE,
:DOUBLE_NEGATIVE,
:DOUBLE_POSITIVE,
:INTEGER,
:INTEGER_NEGATIVE,
:INTEGER_POSITIVE,
:IRI_REF,
:PNAME_LN,
:PNAME_NS,
:STRING_LITERAL1,
:STRING_LITERAL2,
:STRING_LITERAL_LONG1,
:STRING_LITERAL_LONG2 .
"false" g:follow "(",
",",
"[",
"false",
"true",
:ANON,
:BLANK_NODE_LABEL,
:DECIMAL,
:DECIMAL_NEGATIVE,
:DECIMAL_POSITIVE,
:DOUBLE,
:DOUBLE_NEGATIVE,
:DOUBLE_POSITIVE,
:INTEGER,
:INTEGER_NEGATIVE,
:INTEGER_POSITIVE,
:IRI_REF,
:PNAME_LN,
:PNAME_NS,
:STRING_LITERAL1,
:STRING_LITERAL2,
:STRING_LITERAL_LONG1,
:STRING_LITERAL_LONG2 .
"true" g:follow "(",
",",
"[",
"false",
"true",
:ANON,
:BLANK_NODE_LABEL,
:DECIMAL,
:DECIMAL_NEGATIVE,
:DECIMAL_POSITIVE,
:DOUBLE,
:DOUBLE_NEGATIVE,
:DOUBLE_POSITIVE,
:INTEGER,
:INTEGER_NEGATIVE,
:INTEGER_POSITIVE,
:IRI_REF,
:PNAME_LN,
:PNAME_NS,
:STRING_LITERAL1,
:STRING_LITERAL2,
:STRING_LITERAL_LONG1,
:STRING_LITERAL_LONG2 .
<ebnf2bnf.n3> <http://purl.org/dc/elements/1.1/description> "$Id: ebnf2bnf.n3,v 1.7 2006-11-15 19:46:59 connolly Exp $",
"""reduce EBNF to BNF;
i.e. rewrite ?, +, * operators using alt and seq
""";
rdfs:seeAlso <ebnf>,
<ebnf.n3>,
<ebnf.rdf> .
<first_follow.n3> <http://purl.org/dc/elements/1.1/description> "$Id: first_follow.n3,v 1.4 2006-06-22 22:04:51 connolly Exp $";
<http://purl.org/dc/elements/1.1/source> <http://en.wikipedia.org/wiki/LL_parser#Constructing_an_LL.281.29_parsing_table>;
<http://purl.org/dc/elements/1.1/title> "first and follow rules for LL(1) grammars" .
<http://en.wikipedia.org/wiki/LL_parser#Constructing_an_LL.281.29_parsing_table> <http://purl.org/dc/elements/1.1/description> "The same material is covered in page 44-48 of Aho, Sethi, Ullman";
<http://purl.org/dc/elements/1.1/relation> <http://en.wikipedia.org/wiki/Compilers:_Principles%2C_Techniques%2C_and_Tools>;
<http://purl.org/dc/elements/1.1/title> "Constructing an LL(1) parsing table" .
g:alt rdfs:domain g:Production .
g:empty g:first g:eps;
g:follow "(",
",",
";",
"[",
"false",
"true",
g:eof,
:ANON,
:BLANK_NODE_LABEL,
:DECIMAL,
:DECIMAL_NEGATIVE,
:DECIMAL_POSITIVE,
:DOUBLE,
:DOUBLE_NEGATIVE,
:DOUBLE_POSITIVE,
:INTEGER,
:INTEGER_NEGATIVE,
:INTEGER_POSITIVE,
:IRI_REF,
:PNAME_LN,
:PNAME_NS,
:STRING_LITERAL1,
:STRING_LITERAL2,
:STRING_LITERAL_LONG1,
:STRING_LITERAL_LONG2;
g:seq () .
re:alt rdfs:domain re:Regex .
re:diff rdfs:domain re:Regex .
re:matches rdfs:domain re:Regex .
re:opt rdfs:domain re:Regex .
re:plus rdfs:domain re:Regex .
re:seq rdfs:domain re:Regex .
re:star rdfs:domain re:Regex .
:ANON a re:Regex;
rdf:value "94s";
rdfs:comment "[94s] ANON ::= \"[\" (WS)* \"]\"";
rdfs:label "ANON";
g:follow "(",
",",
"[",
"a",
"false",
"true",
:ANON,
:BLANK_NODE_LABEL,
:DECIMAL,
:DECIMAL_NEGATIVE,
:DECIMAL_POSITIVE,
:DOUBLE,
:DOUBLE_NEGATIVE,
:DOUBLE_POSITIVE,
:INTEGER,
:INTEGER_NEGATIVE,
:INTEGER_POSITIVE,
:IRI_REF,
:PNAME_LN,
:PNAME_NS,
:STRING_LITERAL1,
:STRING_LITERAL2,
:STRING_LITERAL_LONG1,
:STRING_LITERAL_LONG2;
re:seq (
"["
[
a re:Regex;
re:star :WS ]
"]" ) .
:BASE a g:Production;
rdf:value "17";
rdfs:comment "[17] BASE ::= \"@base\"";
rdfs:label "BASE";
g:first "@base";
g:nonTerminal :language;
g:seq (
"@base" ) .
:BLANK_NODE_LABEL a re:Regex;
rdf:value "73s";
rdfs:comment """[73s] BLANK_NODE_LABEL ::= "_:" PN_LOCAL""";
rdfs:label "BLANK_NODE_LABEL";
g:follow "(",
",",
"[",
"a",
"false",
"true",
:ANON,
:BLANK_NODE_LABEL,
:DECIMAL,
:DECIMAL_NEGATIVE,
:DECIMAL_POSITIVE,
:DOUBLE,
:DOUBLE_NEGATIVE,
:DOUBLE_POSITIVE,
:INTEGER,
:INTEGER_NEGATIVE,
:INTEGER_POSITIVE,
:IRI_REF,
:PNAME_LN,
:PNAME_NS,
:STRING_LITERAL1,
:STRING_LITERAL2,
:STRING_LITERAL_LONG1,
:STRING_LITERAL_LONG2;
re:seq (
"_:"
:PN_LOCAL ) .
:BlankNode a g:Production;
rdf:value "69s";
rdfs:comment "[69s] BlankNode ::= BLANK_NODE_LABEL | ANON";
rdfs:label "BlankNode";
g:alt (
:BLANK_NODE_LABEL
:ANON );
g:first :ANON,
:BLANK_NODE_LABEL;
g:follow "(",
",",
"[",
"a",
"false",
"true",
:ANON,
:BLANK_NODE_LABEL,
:DECIMAL,
:DECIMAL_NEGATIVE,
:DECIMAL_POSITIVE,
:DOUBLE,
:DOUBLE_NEGATIVE,
:DOUBLE_POSITIVE,
:INTEGER,
:INTEGER_NEGATIVE,
:INTEGER_POSITIVE,
:IRI_REF,
:PNAME_LN,
:PNAME_NS,
:STRING_LITERAL1,
:STRING_LITERAL2,
:STRING_LITERAL_LONG1,
:STRING_LITERAL_LONG2;
g:nonTerminal :language .
:BooleanLiteral a g:Production;
rdf:value "65s";
rdfs:comment "[65s] BooleanLiteral ::= \"true\" | \"false\"";
rdfs:label "BooleanLiteral";
g:alt (
"true"
"false" );
g:first "false",
"true";
g:follow "(",
",",
"[",
"false",
"true",
:ANON,
:BLANK_NODE_LABEL,
:DECIMAL,
:DECIMAL_NEGATIVE,
:DECIMAL_POSITIVE,
:DOUBLE,
:DOUBLE_NEGATIVE,
:DOUBLE_POSITIVE,
:INTEGER,
:INTEGER_NEGATIVE,
:INTEGER_POSITIVE,
:IRI_REF,
:PNAME_LN,
:PNAME_NS,
:STRING_LITERAL1,
:STRING_LITERAL2,
:STRING_LITERAL_LONG1,
:STRING_LITERAL_LONG2;
g:nonTerminal :language .
:DECIMAL a re:Regex;
rdf:value "78s";
rdfs:comment """[78s] DECIMAL ::= [0-9]+ "." [0-9]+ | "." [0-9]+""";
rdfs:label "DECIMAL";
g:follow "(",
",",
"[",
"false",
"true",
:ANON,
:BLANK_NODE_LABEL,
:DECIMAL,
:DECIMAL_NEGATIVE,
:DECIMAL_POSITIVE,
:DOUBLE,
:DOUBLE_NEGATIVE,
:DOUBLE_POSITIVE,
:INTEGER,
:INTEGER_NEGATIVE,
:INTEGER_POSITIVE,
:IRI_REF,
:PNAME_LN,
:PNAME_NS,
:STRING_LITERAL1,
:STRING_LITERAL2,
:STRING_LITERAL_LONG1,
:STRING_LITERAL_LONG2;
re:alt (
[
a re:Regex;
re:seq (
[
a re:Regex;
re:plus [
a re:Regex;
re:matches "[0-9]" ] ]
"."
[
a re:Regex;
re:plus [
a re:Regex;
re:matches "[0-9]" ] ] ) ]
[
a re:Regex;
re:seq (
"."
[
a re:Regex;
re:plus [
a re:Regex;
re:matches "[0-9]" ] ] ) ] ) .
:DECIMAL_NEGATIVE a re:Regex;
rdf:value "84s";
rdfs:comment """[84s] DECIMAL_NEGATIVE ::= "-" DECIMAL""";
rdfs:label "DECIMAL_NEGATIVE";
g:follow "(",
",",
"[",
"false",
"true",
:ANON,
:BLANK_NODE_LABEL,
:DECIMAL,
:DECIMAL_NEGATIVE,
:DECIMAL_POSITIVE,
:DOUBLE,
:DOUBLE_NEGATIVE,
:DOUBLE_POSITIVE,
:INTEGER,
:INTEGER_NEGATIVE,
:INTEGER_POSITIVE,
:IRI_REF,
:PNAME_LN,
:PNAME_NS,
:STRING_LITERAL1,
:STRING_LITERAL2,
:STRING_LITERAL_LONG1,
:STRING_LITERAL_LONG2;
re:seq (
"-"
:DECIMAL ) .
:DECIMAL_POSITIVE a re:Regex;
rdf:value "81s";
rdfs:comment """[81s] DECIMAL_POSITIVE ::= "+" DECIMAL""";
rdfs:label "DECIMAL_POSITIVE";
g:follow "(",
",",
"[",
"false",
"true",
:ANON,
:BLANK_NODE_LABEL,
:DECIMAL,
:DECIMAL_NEGATIVE,
:DECIMAL_POSITIVE,
:DOUBLE,
:DOUBLE_NEGATIVE,
:DOUBLE_POSITIVE,
:INTEGER,
:INTEGER_NEGATIVE,
:INTEGER_POSITIVE,
:IRI_REF,
:PNAME_LN,
:PNAME_NS,
:STRING_LITERAL1,
:STRING_LITERAL2,
:STRING_LITERAL_LONG1,
:STRING_LITERAL_LONG2;
re:seq (
"+"
:DECIMAL ) .
:DOUBLE a re:Regex;
rdf:value "79s";
rdfs:comment """[79s] DOUBLE ::= [0-9]+ "." [0-9]+ EXPONENT | "." ( [0-9] )+ EXPONENT | ( [0-9] )+ EXPONENT""";
rdfs:label "DOUBLE";
g:follow "(",
",",
"[",
"false",
"true",
:ANON,
:BLANK_NODE_LABEL,
:DECIMAL,
:DECIMAL_NEGATIVE,
:DECIMAL_POSITIVE,
:DOUBLE,
:DOUBLE_NEGATIVE,
:DOUBLE_POSITIVE,
:INTEGER,
:INTEGER_NEGATIVE,
:INTEGER_POSITIVE,
:IRI_REF,
:PNAME_LN,
:PNAME_NS,
:STRING_LITERAL1,
:STRING_LITERAL2,
:STRING_LITERAL_LONG1,
:STRING_LITERAL_LONG2;
re:alt (
[
a re:Regex;
re:seq (
[
a re:Regex;
re:plus [
a re:Regex;
re:matches "[0-9]" ] ]
"."
[
a re:Regex;
re:plus [
a re:Regex;
re:matches "[0-9]" ] ]
:EXPONENT ) ]
[
a re:Regex;
re:seq (
"."
[
a re:Regex;
re:plus [
a re:Regex;
re:matches "[0-9]" ] ]
:EXPONENT ) ]
[
a re:Regex;
re:seq (
[
a re:Regex;
re:plus [
a re:Regex;
re:matches "[0-9]" ] ]
:EXPONENT ) ] ) .
:DOUBLE_NEGATIVE a re:Regex;
rdf:value "85s";
rdfs:comment """[85s] DOUBLE_NEGATIVE ::= "-" DOUBLE""";
rdfs:label "DOUBLE_NEGATIVE";
g:follow "(",
",",
"[",
"false",
"true",
:ANON,
:BLANK_NODE_LABEL,
:DECIMAL,
:DECIMAL_NEGATIVE,
:DECIMAL_POSITIVE,
:DOUBLE,
:DOUBLE_NEGATIVE,
:DOUBLE_POSITIVE,
:INTEGER,
:INTEGER_NEGATIVE,
:INTEGER_POSITIVE,
:IRI_REF,
:PNAME_LN,
:PNAME_NS,
:STRING_LITERAL1,
:STRING_LITERAL2,
:STRING_LITERAL_LONG1,
:STRING_LITERAL_LONG2;
re:seq (
"-"
:DOUBLE ) .
:DOUBLE_POSITIVE a re:Regex;
rdf:value "82s";
rdfs:comment """[82s] DOUBLE_POSITIVE ::= "+" DOUBLE""";
rdfs:label "DOUBLE_POSITIVE";
g:follow "(",
",",
"[",
"false",
"true",
:ANON,
:BLANK_NODE_LABEL,
:DECIMAL,
:DECIMAL_NEGATIVE,
:DECIMAL_POSITIVE,
:DOUBLE,
:DOUBLE_NEGATIVE,
:DOUBLE_POSITIVE,
:INTEGER,
:INTEGER_NEGATIVE,
:INTEGER_POSITIVE,
:IRI_REF,
:PNAME_LN,
:PNAME_NS,
:STRING_LITERAL1,
:STRING_LITERAL2,
:STRING_LITERAL_LONG1,
:STRING_LITERAL_LONG2;
re:seq (
"+"
:DOUBLE ) .
:ECHAR a re:Regex;
rdf:value "91s";
rdfs:comment """[91s] ECHAR ::= "\\\\" [tbnrf\\\\\\"']""";
rdfs:label "ECHAR";
re:seq (
"\\\\"
[
a re:Regex;
re:matches "[tbnrf\\\\\\\"']" ] ) .
:EXPONENT a re:Regex;
rdf:value "86s";
rdfs:comment "[86s] EXPONENT ::= [eE] [+-]? [0-9]+";
rdfs:label "EXPONENT";
re:seq (
[
a re:Regex;
re:matches "[eE]" ]
[
a re:Regex;
re:opt [
a re:Regex;
re:matches "[+-]" ] ]
[
a re:Regex;
re:plus [
a re:Regex;
re:matches "[0-9]" ] ] ) .
:HEX a re:Regex;
rdf:value "162s";
rdfs:comment "[162s] HEX ::= [0-9] | [A-F] | [a-f]";
rdfs:label "HEX";
re:alt (
[
a re:Regex;
re:matches "[0-9]" ]
[
a re:Regex;
re:matches "[A-F]" ]
[
a re:Regex;
re:matches "[a-f]" ] ) .
:INTEGER a re:Regex;
rdf:value "77s";
rdfs:comment "[77s] INTEGER ::= [0-9]+";
rdfs:label "INTEGER";
g:follow "(",
",",
"[",
"false",
"true",
:ANON,
:BLANK_NODE_LABEL,
:DECIMAL,
:DECIMAL_NEGATIVE,
:DECIMAL_POSITIVE,
:DOUBLE,
:DOUBLE_NEGATIVE,
:DOUBLE_POSITIVE,
:INTEGER,
:INTEGER_NEGATIVE,
:INTEGER_POSITIVE,
:IRI_REF,
:PNAME_LN,
:PNAME_NS,
:STRING_LITERAL1,
:STRING_LITERAL2,
:STRING_LITERAL_LONG1,
:STRING_LITERAL_LONG2;
re:plus [
a re:Regex;
re:matches "[0-9]" ] .
:INTEGER_NEGATIVE a re:Regex;
rdf:value "83s";
rdfs:comment """[83s] INTEGER_NEGATIVE ::= "-" INTEGER""";
rdfs:label "INTEGER_NEGATIVE";
g:follow "(",
",",
"[",
"false",
"true",
:ANON,
:BLANK_NODE_LABEL,
:DECIMAL,
:DECIMAL_NEGATIVE,
:DECIMAL_POSITIVE,
:DOUBLE,
:DOUBLE_NEGATIVE,
:DOUBLE_POSITIVE,
:INTEGER,
:INTEGER_NEGATIVE,
:INTEGER_POSITIVE,
:IRI_REF,
:PNAME_LN,
:PNAME_NS,
:STRING_LITERAL1,
:STRING_LITERAL2,
:STRING_LITERAL_LONG1,
:STRING_LITERAL_LONG2;
re:seq (
"-"
:INTEGER ) .
:INTEGER_POSITIVE a re:Regex;
rdf:value "80s";
rdfs:comment """[80s] INTEGER_POSITIVE ::= "+" INTEGER""";
rdfs:label "INTEGER_POSITIVE";
g:follow "(",
",",
"[",
"false",
"true",
:ANON,
:BLANK_NODE_LABEL,
:DECIMAL,
:DECIMAL_NEGATIVE,
:DECIMAL_POSITIVE,
:DOUBLE,
:DOUBLE_NEGATIVE,
:DOUBLE_POSITIVE,
:INTEGER,
:INTEGER_NEGATIVE,
:INTEGER_POSITIVE,
:IRI_REF,
:PNAME_LN,
:PNAME_NS,
:STRING_LITERAL1,
:STRING_LITERAL2,
:STRING_LITERAL_LONG1,
:STRING_LITERAL_LONG2;
re:seq (
"+"
:INTEGER ) .
:IRI_REF a re:Regex;
rdf:value "70s";
rdfs:comment "[70s] IRI_REF ::= \"<\" ( [^<>\\\"{}|^`\\\\] - [#x00-#x20] | UCHAR )* \">\"";
rdfs:label "IRI_REF";
g:follow "(",
",",
"[",
"a",
"false",
"true",
:ANON,
:BLANK_NODE_LABEL,
:DECIMAL,
:DECIMAL_NEGATIVE,
:DECIMAL_POSITIVE,
:DOUBLE,
:DOUBLE_NEGATIVE,
:DOUBLE_POSITIVE,
:INTEGER,
:INTEGER_NEGATIVE,
:INTEGER_POSITIVE,
:IRI_REF,
:PNAME_LN,
:PNAME_NS,
:STRING_LITERAL1,
:STRING_LITERAL2,
:STRING_LITERAL_LONG1,
:STRING_LITERAL_LONG2;
re:seq (
"<"
[
a re:Regex;
re:star [
a re:Regex;
re:alt (
[
a re:Regex;
re:diff (
[
a re:Regex;
re:matches "[^<>\\\"{}|^`\\\\]" ]
[
a re:Regex;
re:matches "[- ]" ] ) ]
:UCHAR ) ] ]
">" ) .
:IRIref a g:Production;
rdf:value "67s";
rdfs:comment "[67s] IRIref ::= IRI_REF | PrefixedName";
rdfs:label "IRIref";
g:alt (
:IRI_REF
:PrefixedName );
g:first :IRI_REF,
:PNAME_LN,
:PNAME_NS;
g:follow "(",
",",
"[",
"a",
"false",
"true",
:ANON,
:BLANK_NODE_LABEL,
:DECIMAL,
:DECIMAL_NEGATIVE,
:DECIMAL_POSITIVE,
:DOUBLE,
:DOUBLE_NEGATIVE,
:DOUBLE_POSITIVE,
:INTEGER,
:INTEGER_NEGATIVE,
:INTEGER_POSITIVE,
:IRI_REF,
:PNAME_LN,
:PNAME_NS,
:STRING_LITERAL1,
:STRING_LITERAL2,
:STRING_LITERAL_LONG1,
:STRING_LITERAL_LONG2;
g:nonTerminal :language .
:LANGTAG a re:Regex;
rdf:value "76s";
rdfs:comment """[76s] LANGTAG ::= BASE | PREFIX | "@" [a-zA-Z]+ ( "-" [a-zA-Z0-9]+ )*""";
rdfs:label "LANGTAG";
g:follow "(",
",",
"[",
"false",
"true",
:ANON,
:BLANK_NODE_LABEL,
:DECIMAL,
:DECIMAL_NEGATIVE,
:DECIMAL_POSITIVE,
:DOUBLE,
:DOUBLE_NEGATIVE,
:DOUBLE_POSITIVE,
:INTEGER,
:INTEGER_NEGATIVE,
:INTEGER_POSITIVE,
:IRI_REF,
:PNAME_LN,
:PNAME_NS,
:STRING_LITERAL1,
:STRING_LITERAL2,
:STRING_LITERAL_LONG1,
:STRING_LITERAL_LONG2;
re:alt (
:BASE
:PREFIX
[
a re:Regex;
re:seq (
"@"
[
a re:Regex;
re:plus [
a re:Regex;
re:matches "[a-zA-Z]" ] ]
[
a re:Regex;
re:star [
a re:Regex;
re:seq (
"-"
[
a re:Regex;
re:plus [
a re:Regex;
re:matches "[a-zA-Z0-9]" ] ] ) ] ] ) ] ) .
:NIL a re:Regex;
rdf:value "92s";
rdfs:comment "[92s] NIL ::= \"(\" (WS)* \")\"";
rdfs:label "NIL";
re:seq (
"("
[
a re:Regex;
re:star :WS ]
")" ) .
:NumericLiteral a g:Production;
rdf:value "61s";
rdfs:comment "[61s] NumericLiteral ::= NumericLiteralUnsigned | NumericLiteralPositive | NumericLiteralNegative";
rdfs:label "NumericLiteral";
g:alt (
:NumericLiteralUnsigned
:NumericLiteralPositive
:NumericLiteralNegative );
g:first :DECIMAL,
:DECIMAL_NEGATIVE,
:DECIMAL_POSITIVE,
:DOUBLE,
:DOUBLE_NEGATIVE,
:DOUBLE_POSITIVE,
:INTEGER,
:INTEGER_NEGATIVE,
:INTEGER_POSITIVE;
g:follow "(",
",",
"[",
"false",
"true",
:ANON,
:BLANK_NODE_LABEL,
:DECIMAL,
:DECIMAL_NEGATIVE,
:DECIMAL_POSITIVE,
:DOUBLE,
:DOUBLE_NEGATIVE,
:DOUBLE_POSITIVE,
:INTEGER,
:INTEGER_NEGATIVE,
:INTEGER_POSITIVE,
:IRI_REF,
:PNAME_LN,
:PNAME_NS,
:STRING_LITERAL1,
:STRING_LITERAL2,
:STRING_LITERAL_LONG1,
:STRING_LITERAL_LONG2;
g:nonTerminal :language .
:NumericLiteralNegative a g:Production;
rdf:value "64s";
rdfs:comment "[64s] NumericLiteralNegative ::= INTEGER_NEGATIVE | DECIMAL_NEGATIVE | DOUBLE_NEGATIVE";
rdfs:label "NumericLiteralNegative";
g:alt (
:INTEGER_NEGATIVE
:DECIMAL_NEGATIVE
:DOUBLE_NEGATIVE );
g:first :DECIMAL_NEGATIVE,
:DOUBLE_NEGATIVE,
:INTEGER_NEGATIVE;
g:follow "(",
",",
"[",
"false",
"true",
:ANON,
:BLANK_NODE_LABEL,
:DECIMAL,
:DECIMAL_NEGATIVE,
:DECIMAL_POSITIVE,
:DOUBLE,
:DOUBLE_NEGATIVE,
:DOUBLE_POSITIVE,
:INTEGER,
:INTEGER_NEGATIVE,
:INTEGER_POSITIVE,
:IRI_REF,
:PNAME_LN,
:PNAME_NS,
:STRING_LITERAL1,
:STRING_LITERAL2,
:STRING_LITERAL_LONG1,
:STRING_LITERAL_LONG2;
g:nonTerminal :language .
:NumericLiteralPositive a g:Production;
rdf:value "63s";
rdfs:comment "[63s] NumericLiteralPositive ::= INTEGER_POSITIVE | DECIMAL_POSITIVE | DOUBLE_POSITIVE";
rdfs:label "NumericLiteralPositive";
g:alt (
:INTEGER_POSITIVE
:DECIMAL_POSITIVE
:DOUBLE_POSITIVE );
g:first :DECIMAL_POSITIVE,
:DOUBLE_POSITIVE,
:INTEGER_POSITIVE;
g:follow "(",
",",
"[",
"false",
"true",
:ANON,
:BLANK_NODE_LABEL,
:DECIMAL,
:DECIMAL_NEGATIVE,
:DECIMAL_POSITIVE,
:DOUBLE,
:DOUBLE_NEGATIVE,
:DOUBLE_POSITIVE,
:INTEGER,
:INTEGER_NEGATIVE,
:INTEGER_POSITIVE,
:IRI_REF,
:PNAME_LN,
:PNAME_NS,
:STRING_LITERAL1,
:STRING_LITERAL2,
:STRING_LITERAL_LONG1,
:STRING_LITERAL_LONG2;
g:nonTerminal :language .
:NumericLiteralUnsigned a g:Production;
rdf:value "62s";
rdfs:comment "[62s] NumericLiteralUnsigned ::= INTEGER | DECIMAL | DOUBLE";
rdfs:label "NumericLiteralUnsigned";
g:alt (
:INTEGER
:DECIMAL
:DOUBLE );
g:first :DECIMAL,
:DOUBLE,
:INTEGER;
g:follow "(",
",",
"[",
"false",
"true",
:ANON,
:BLANK_NODE_LABEL,
:DECIMAL,
:DECIMAL_NEGATIVE,
:DECIMAL_POSITIVE,
:DOUBLE,
:DOUBLE_NEGATIVE,
:DOUBLE_POSITIVE,
:INTEGER,
:INTEGER_NEGATIVE,
:INTEGER_POSITIVE,
:IRI_REF,
:PNAME_LN,
:PNAME_NS,
:STRING_LITERAL1,
:STRING_LITERAL2,
:STRING_LITERAL_LONG1,
:STRING_LITERAL_LONG2;
g:nonTerminal :language .
:PERCENT a re:Regex;
rdf:value "161s";
rdfs:comment "[161s] PERCENT ::= '%' HEX HEX";
rdfs:label "PERCENT";
re:seq (
"%"
:HEX
:HEX ) .
:PLX a re:Regex;
rdf:value "160s";
rdfs:comment "[160s] PLX ::= PERCENT | PN_LOCAL_ESC";
rdfs:label "PLX";
re:alt (
:PERCENT
:PN_LOCAL_ESC ) .
:PNAME_LN a re:Regex;
rdf:value "72s";
rdfs:comment "[72s] PNAME_LN ::= PNAME_NS PN_LOCAL";
rdfs:label "PNAME_LN";
g:follow "(",
",",
"[",
"a",
"false",
"true",
:ANON,
:BLANK_NODE_LABEL,
:DECIMAL,
:DECIMAL_NEGATIVE,
:DECIMAL_POSITIVE,
:DOUBLE,
:DOUBLE_NEGATIVE,
:DOUBLE_POSITIVE,
:INTEGER,
:INTEGER_NEGATIVE,
:INTEGER_POSITIVE,
:IRI_REF,
:PNAME_LN,
:PNAME_NS,
:STRING_LITERAL1,
:STRING_LITERAL2,
:STRING_LITERAL_LONG1,
:STRING_LITERAL_LONG2;
re:seq (
:PNAME_NS
:PN_LOCAL ) .
:PNAME_NS a re:Regex;
rdf:value "71s";
rdfs:comment "[71s] PNAME_NS ::= (PN_PREFIX)? \":\"";
rdfs:label "PNAME_NS";
g:follow "(",
",",
"[",
"a",
"false",
"true",
:ANON,
:BLANK_NODE_LABEL,
:DECIMAL,
:DECIMAL_NEGATIVE,
:DECIMAL_POSITIVE,
:DOUBLE,
:DOUBLE_NEGATIVE,
:DOUBLE_POSITIVE,
:INTEGER,
:INTEGER_NEGATIVE,
:INTEGER_POSITIVE,
:IRI_REF,
:PNAME_LN,
:PNAME_NS,
:STRING_LITERAL1,
:STRING_LITERAL2,
:STRING_LITERAL_LONG1,
:STRING_LITERAL_LONG2;
re:seq (
[
a re:Regex;
re:opt :PN_PREFIX ]
":" ) .
:PN_CHARS a re:Regex;
rdf:value "98s";
rdfs:comment """[98s] PN_CHARS ::= PN_CHARS_U | "-" | [0-9] | #00B7 | [#0300-#036F] | [#203F-#2040]""";
rdfs:label "PN_CHARS";
re:alt (
:PN_CHARS_U
"-"
[
a re:Regex;
re:matches "[0-9]" ]
[
a re:Regex;
re:matches "[#00B7]" ]
[
a re:Regex;
re:matches "[#0300-#036F]" ]
[
a re:Regex;
re:matches "[#203F-#2040]" ] ) .
:PN_CHARS_BASE a re:Regex;
rdf:value "95s";
rdfs:comment "[95s] PN_CHARS_BASE ::= [A-Z] | [a-z] | [#00C0-#00D6] | [#00D8-#00F6] | [#00F8-#02FF] | [#0370-#037D] | [#037F-#1FFF] | [#200C-#200D] | [#2070-#218F] | [#2C00-#2FEF] | [#3001-#D7FF] | [#F900-#FDCF] | [#FDF0-#FFFD] | [#10000-#EFFFF] | UCHAR";
rdfs:label "PN_CHARS_BASE";
re:alt (
[
a re:Regex;
re:matches "[A-Z]" ]
[
a re:Regex;
re:matches "[a-z]" ]
[
a re:Regex;
re:matches "[#00C0-#00D6]" ]
[
a re:Regex;
re:matches "[#00D8-#00F6]" ]
[
a re:Regex;
re:matches "[#00F8-#02FF]" ]
[
a re:Regex;
re:matches "[#0370-#037D]" ]
[
a re:Regex;
re:matches "[#037F-#1FFF]" ]
[
a re:Regex;
re:matches "[#200C-#200D]" ]
[
a re:Regex;
re:matches "[#2070-#218F]" ]
[
a re:Regex;
re:matches "[#2C00-#2FEF]" ]
[
a re:Regex;
re:matches "[#3001-#D7FF]" ]
[
a re:Regex;
re:matches "[#F900-#FDCF]" ]
[
a re:Regex;
re:matches "[#FDF0-#FFFD]" ]
[
a re:Regex;
re:matches "[#10000-#EFFFF]" ]
:UCHAR ) .
:PN_CHARS_U a re:Regex;
rdf:value "96s";
rdfs:comment "[96s] PN_CHARS_U ::= PN_CHARS_BASE | \"_\"";
rdfs:label "PN_CHARS_U";
re:alt (
:PN_CHARS_BASE
"_" ) .
:PN_LOCAL a re:Regex;
rdf:value "100s";
rdfs:comment "[100s] PN_LOCAL ::= ( PN_CHARS_U | [0-9] | PLX ) ( ( PN_CHARS | '.' | PLX )* ( PN_CHARS | PLX ) ) ?";
rdfs:label "PN_LOCAL";
re:seq (
[
a re:Regex;
re:alt (
:PN_CHARS_U
[
a re:Regex;
re:matches "[0-9]" ]
:PLX ) ]
[
a re:Regex;
re:opt [
a re:Regex;
re:seq (
[
a re:Regex;
re:star [
a re:Regex;
re:alt (
:PN_CHARS
"."
:PLX ) ] ]
[
a re:Regex;
re:alt (
:PN_CHARS
:PLX ) ] ) ] ] ) .
:PN_LOCAL_ESC a re:Regex;
rdf:value "163s";
rdfs:comment """[163s] PN_LOCAL_ESC ::= '\\\\' ( '_' | '~' | '.' | '-' | '!' | '$' | '&' | "'" | '(' | ')' | '*' | '+' | ',' | ';' | '=' | ':' | '/' | '?' | '#' | '@' | '%' )""";
rdfs:label "PN_LOCAL_ESC";
re:seq (
"\\\\"
[
a re:Regex;
re:alt (
"_"
"~"
"."
"-"
"!"
"$"
"&"
"'"
"("
")"
"*"
"+"
","
";"
"="
":"
"/"
"?"
"#"
"@"
"%" ) ] ) .
:PN_PREFIX a re:Regex;
rdf:value "99s";
rdfs:comment """[99s] PN_PREFIX ::= PN_CHARS_BASE ( ( PN_CHARS | "." )* PN_CHARS )?""";
rdfs:label "PN_PREFIX";
re:seq (
:PN_CHARS_BASE
[
a re:Regex;
re:opt [
a re:Regex;
re:seq (
[
a re:Regex;
re:star [
a re:Regex;
re:alt (
:PN_CHARS
"." ) ] ]
:PN_CHARS ) ] ] ) .
:PREFIX a g:Production;
rdf:value "18";
rdfs:comment "[18] PREFIX ::= \"@prefix\"";
rdfs:label "PREFIX";
g:first "@prefix";
g:nonTerminal :language;
g:seq (
"@prefix" ) .
:PrefixedName a g:Production;
rdf:value "68s";
rdfs:comment "[68s] PrefixedName ::= PNAME_LN | PNAME_NS";
rdfs:label "PrefixedName";
g:alt (
:PNAME_LN
:PNAME_NS );
g:first :PNAME_LN,
:PNAME_NS;
g:follow "(",
",",
"[",
"a",
"false",
"true",
:ANON,
:BLANK_NODE_LABEL,
:DECIMAL,
:DECIMAL_NEGATIVE,
:DECIMAL_POSITIVE,
:DOUBLE,
:DOUBLE_NEGATIVE,
:DOUBLE_POSITIVE,
:INTEGER,
:INTEGER_NEGATIVE,
:INTEGER_POSITIVE,
:IRI_REF,
:PNAME_LN,
:PNAME_NS,
:STRING_LITERAL1,
:STRING_LITERAL2,
:STRING_LITERAL_LONG1,
:STRING_LITERAL_LONG2;
g:nonTerminal :language .
:RDFLiteral a g:Production;
rdf:value "60s";
rdfs:comment """[60s] RDFLiteral ::= String ( LANGTAG | ( "^^" IRIref ) )?""";
rdfs:label "RDFLiteral";
g:first :STRING_LITERAL1,
:STRING_LITERAL2,
:STRING_LITERAL_LONG1,
:STRING_LITERAL_LONG2;
g:follow "(",
",",
"[",
"false",
"true",
:ANON,
:BLANK_NODE_LABEL,
:DECIMAL,
:DECIMAL_NEGATIVE,
:DECIMAL_POSITIVE,
:DOUBLE,
:DOUBLE_NEGATIVE,
:DOUBLE_POSITIVE,
:INTEGER,
:INTEGER_NEGATIVE,
:INTEGER_POSITIVE,
:IRI_REF,
:PNAME_LN,
:PNAME_NS,
:STRING_LITERAL1,
:STRING_LITERAL2,
:STRING_LITERAL_LONG1,
:STRING_LITERAL_LONG2;
g:nonTerminal :language;
g:seq (
:String
<#_g7> ) .
:STRING_LITERAL1 a re:Regex;
rdf:value "87s";
rdfs:comment "[87s] STRING_LITERAL1 ::= \"'\" ( ( [^'\\\\\\n\\r] ) | ECHAR | UCHAR )* \"'\"";
rdfs:label "STRING_LITERAL1";
g:follow "^^",
:LANGTAG;
re:seq (
"'"
[
a re:Regex;
re:star [
a re:Regex;
re:alt (
[
a re:Regex;
re:matches "[^'\\\\\\n\\r]" ]
:ECHAR
:UCHAR ) ] ]
"'" ) .
:STRING_LITERAL2 a re:Regex;
rdf:value "88s";
rdfs:comment """[88s] STRING_LITERAL2 ::= '"' ( ( [^\\"\\\\\\n\\r] ) | ECHAR | UCHAR )* '"'""";
rdfs:label "STRING_LITERAL2";
g:follow "^^",
:LANGTAG;
re:seq (
"\""
[
a re:Regex;
re:star [
a re:Regex;
re:alt (
[
a re:Regex;
re:matches "[^\\\"\\\\\\n\\r]" ]
:ECHAR
:UCHAR ) ] ]
"\"" ) .
:STRING_LITERAL_LONG1 a re:Regex;
rdf:value "89s";
rdfs:comment "[89s] STRING_LITERAL_LONG1 ::= \"'''\" ( ( \"'\" | \"''\" )? ( [^'\\\\] | ECHAR | UCHAR ) )* \"'''\"";
rdfs:label "STRING_LITERAL_LONG1";
g:follow "^^",
:LANGTAG;
re:seq (
"'''"
[
a re:Regex;
re:star [
a re:Regex;
re:seq (
[
a re:Regex;
re:opt [
a re:Regex;
re:alt (
"'"
"''" ) ] ]
[
a re:Regex;
re:alt (
[
a re:Regex;
re:matches "[^'\\\\]" ]
:ECHAR
:UCHAR ) ] ) ] ]
"'''" ) .
:STRING_LITERAL_LONG2 a re:Regex;
rdf:value "90s";
rdfs:comment """[90s] STRING_LITERAL_LONG2 ::= '\"""' ( ( '"' | '""' )? ( [^\\"\\\\] | ECHAR | UCHAR ) )* '\"""'""";
rdfs:label "STRING_LITERAL_LONG2";
g:follow "^^",
:LANGTAG;
re:seq (
"\"\"\""
[
a re:Regex;
re:star [
a re:Regex;
re:seq (
[
a re:Regex;
re:opt [
a re:Regex;
re:alt (
"\""
"\"\"" ) ] ]
[
a re:Regex;
re:alt (
[
a re:Regex;
re:matches "[^\\\"\\\\]" ]
:ECHAR
:UCHAR ) ] ) ] ]
"\"\"\"" ) .
:String a g:Production;
rdf:value "66s";
rdfs:comment "[66s] String ::= STRING_LITERAL1 | STRING_LITERAL2 | STRING_LITERAL_LONG1 | STRING_LITERAL_LONG2";
rdfs:label "String";
g:alt (
:STRING_LITERAL1
:STRING_LITERAL2
:STRING_LITERAL_LONG1
:STRING_LITERAL_LONG2 );
g:first :STRING_LITERAL1,
:STRING_LITERAL2,
:STRING_LITERAL_LONG1,
:STRING_LITERAL_LONG2;
g:follow "^^",
:LANGTAG;
g:nonTerminal :language .
:UCHAR a re:Regex;
rdf:value "19";
rdfs:comment """[19] UCHAR ::= ( "\\\\u" HEX HEX HEX HEX ) | ( "\\\\U" HEX HEX HEX HEX HEX HEX HEX HEX )""";
rdfs:label "UCHAR";
re:alt (
[
a re:Regex;
re:seq (
"\\\\u"
:HEX
:HEX
:HEX
:HEX ) ]
[
a re:Regex;
re:seq (
"\\\\U"
:HEX
:HEX
:HEX
:HEX
:HEX
:HEX
:HEX
:HEX ) ] ) .
:WS a re:Regex;
rdf:value "93s";
rdfs:comment "[93s] WS ::= \" \" | \"\\t\" | \"\\r\" | \"\\n\"";
rdfs:label "WS";
re:alt (
" "
"\\t"
"\\r"
"\\n" ) .
:base a g:Production;
rdf:value "5";
rdfs:comment "[5] base ::= BASE IRI_REF";
rdfs:label "base";
g:first "@base";
g:nonTerminal :language;
g:seq (
:BASE
:IRI_REF ) .
:blank a g:Production;
rdf:value "14";
rdfs:comment "[14] blank ::= BlankNode | blankNodePropertyList | collection";
rdfs:label "blank";
g:alt (
:BlankNode
:blankNodePropertyList
:collection );
g:first "(",
"[",
:ANON,
:BLANK_NODE_LABEL;
g:follow "(",
",",
"[",
"a",
"false",
"true",
:ANON,
:BLANK_NODE_LABEL,
:DECIMAL,
:DECIMAL_NEGATIVE,
:DECIMAL_POSITIVE,
:DOUBLE,
:DOUBLE_NEGATIVE,
:DOUBLE_POSITIVE,
:INTEGER,
:INTEGER_NEGATIVE,
:INTEGER_POSITIVE,
:IRI_REF,
:PNAME_LN,
:PNAME_NS,
:STRING_LITERAL1,
:STRING_LITERAL2,
:STRING_LITERAL_LONG1,
:STRING_LITERAL_LONG2;
g:nonTerminal :language .
:blankNodePropertyList a g:Production;
rdf:value "15";
rdfs:comment "[15] blankNodePropertyList ::= \"[\" predicateObjectList \"]\"";
rdfs:label "blankNodePropertyList";
g:first "[";
g:follow "(",
",",
"[",
"a",
"false",
"true",
:ANON,
:BLANK_NODE_LABEL,
:DECIMAL,
:DECIMAL_NEGATIVE,
:DECIMAL_POSITIVE,
:DOUBLE,
:DOUBLE_NEGATIVE,
:DOUBLE_POSITIVE,
:INTEGER,
:INTEGER_NEGATIVE,
:INTEGER_POSITIVE,
:IRI_REF,
:PNAME_LN,
:PNAME_NS,
:STRING_LITERAL1,
:STRING_LITERAL2,
:STRING_LITERAL_LONG1,
:STRING_LITERAL_LONG2;
g:nonTerminal :language;
g:seq (
"["
:predicateObjectList
"]" ) .
:collection a g:Production;
rdf:value "16";
rdfs:comment "[16] collection ::= \"(\" object* \")\"";
rdfs:label "collection";
g:first "(";
g:follow "(",
",",
"[",
"a",
"false",
"true",
:ANON,
:BLANK_NODE_LABEL,
:DECIMAL,
:DECIMAL_NEGATIVE,
:DECIMAL_POSITIVE,
:DOUBLE,
:DOUBLE_NEGATIVE,
:DOUBLE_POSITIVE,
:INTEGER,
:INTEGER_NEGATIVE,
:INTEGER_POSITIVE,
:IRI_REF,
:PNAME_LN,
:PNAME_NS,
:STRING_LITERAL1,
:STRING_LITERAL2,
:STRING_LITERAL_LONG1,
:STRING_LITERAL_LONG2;
g:nonTerminal :language;
g:seq (
"("
<#_g6>
")" ) .
:directive a g:Production;
rdf:value "3";
rdfs:comment "[3] directive ::= prefixID | base";
rdfs:label "directive";
g:alt (
:prefixID
:base );
g:first "@base",
"@prefix";
g:nonTerminal :language .
:language rdfs:isDefinedBy <../../rdf-turtle/etc/turtle.n3>;
g:start :turtleDoc;
g:terminal "(",
")",
",",
".",
";",
"@base",
"@prefix",
"[",
"]",
"^^",
"a",
"false",
"true",
:ANON,
:BLANK_NODE_LABEL,
:DECIMAL,
:DECIMAL_NEGATIVE,
:DECIMAL_POSITIVE,
:DOUBLE,
:DOUBLE_NEGATIVE,
:DOUBLE_POSITIVE,
:INTEGER,
:INTEGER_NEGATIVE,
:INTEGER_POSITIVE,
:IRI_REF,
:LANGTAG,
:PNAME_LN,
:PNAME_NS,
:STRING_LITERAL1,
:STRING_LITERAL2,
:STRING_LITERAL_LONG1,
:STRING_LITERAL_LONG2 .
:literal a g:Production;
rdf:value "13";
rdfs:comment "[13] literal ::= RDFLiteral | NumericLiteral | BooleanLiteral";
rdfs:label "literal";
g:alt (
:RDFLiteral
:NumericLiteral
:BooleanLiteral );
g:first "false",
"true",
:DECIMAL,
:DECIMAL_NEGATIVE,
:DECIMAL_POSITIVE,
:DOUBLE,
:DOUBLE_NEGATIVE,
:DOUBLE_POSITIVE,
:INTEGER,
:INTEGER_NEGATIVE,
:INTEGER_POSITIVE,
:STRING_LITERAL1,
:STRING_LITERAL2,
:STRING_LITERAL_LONG1,
:STRING_LITERAL_LONG2;
g:follow "(",
",",
"[",
"false",
"true",
:ANON,
:BLANK_NODE_LABEL,
:DECIMAL,
:DECIMAL_NEGATIVE,
:DECIMAL_POSITIVE,
:DOUBLE,
:DOUBLE_NEGATIVE,
:DOUBLE_POSITIVE,
:INTEGER,
:INTEGER_NEGATIVE,
:INTEGER_POSITIVE,
:IRI_REF,
:PNAME_LN,
:PNAME_NS,
:STRING_LITERAL1,
:STRING_LITERAL2,
:STRING_LITERAL_LONG1,
:STRING_LITERAL_LONG2;
g:nonTerminal :language .
:object a g:Production;
rdf:value "12";
rdfs:comment "[12] object ::= IRIref | blank | literal";
rdfs:label "object";
g:alt (
:IRIref
:blank
:literal );
g:first "(",
"[",
"false",
"true",
:ANON,
:BLANK_NODE_LABEL,
:DECIMAL,
:DECIMAL_NEGATIVE,
:DECIMAL_POSITIVE,
:DOUBLE,
:DOUBLE_NEGATIVE,
:DOUBLE_POSITIVE,
:INTEGER,
:INTEGER_NEGATIVE,
:INTEGER_POSITIVE,
:IRI_REF,
:PNAME_LN,
:PNAME_NS,
:STRING_LITERAL1,
:STRING_LITERAL2,
:STRING_LITERAL_LONG1,
:STRING_LITERAL_LONG2;
g:follow "(",
",",
"[",
"false",
"true",
:ANON,
:BLANK_NODE_LABEL,
:DECIMAL,
:DECIMAL_NEGATIVE,
:DECIMAL_POSITIVE,
:DOUBLE,
:DOUBLE_NEGATIVE,
:DOUBLE_POSITIVE,
:INTEGER,
:INTEGER_NEGATIVE,
:INTEGER_POSITIVE,
:IRI_REF,
:PNAME_LN,
:PNAME_NS,
:STRING_LITERAL1,
:STRING_LITERAL2,
:STRING_LITERAL_LONG1,
:STRING_LITERAL_LONG2;
g:nonTerminal :language .
:objectList a g:Production;
rdf:value "8";
rdfs:comment """[8] objectList ::= object ( "," object )*""";
rdfs:label "objectList";
g:first "(",
"[",
"false",
"true",
:ANON,
:BLANK_NODE_LABEL,
:DECIMAL,
:DECIMAL_NEGATIVE,
:DECIMAL_POSITIVE,
:DOUBLE,
:DOUBLE_NEGATIVE,
:DOUBLE_POSITIVE,
:INTEGER,
:INTEGER_NEGATIVE,
:INTEGER_POSITIVE,
:IRI_REF,
:PNAME_LN,
:PNAME_NS,
:STRING_LITERAL1,
:STRING_LITERAL2,
:STRING_LITERAL_LONG1,
:STRING_LITERAL_LONG2;
g:follow ";";
g:nonTerminal :language;
g:seq (
:object
<#_g4> ) .
:predicate a g:Production;
rdf:value "11";
rdfs:comment "[11] predicate ::= IRIref";
rdfs:label "predicate";
g:first :IRI_REF,
:PNAME_LN,
:PNAME_NS;
g:follow "(",
"[",
"false",
"true",
:ANON,
:BLANK_NODE_LABEL,
:DECIMAL,
:DECIMAL_NEGATIVE,
:DECIMAL_POSITIVE,
:DOUBLE,
:DOUBLE_NEGATIVE,
:DOUBLE_POSITIVE,
:INTEGER,
:INTEGER_NEGATIVE,
:INTEGER_POSITIVE,
:IRI_REF,
:PNAME_LN,
:PNAME_NS,
:STRING_LITERAL1,
:STRING_LITERAL2,
:STRING_LITERAL_LONG1,
:STRING_LITERAL_LONG2;
g:nonTerminal :language;
g:seq (
:IRIref ) .
:predicateObjectList a g:Production;
rdf:value "7";
rdfs:comment """[7] predicateObjectList ::= verb objectList ( ";" ( verb objectList)? )*""";
rdfs:label "predicateObjectList";
g:first "a",
:IRI_REF,
:PNAME_LN,
:PNAME_NS;
g:nonTerminal :language;
g:seq (
:verb
:objectList
<#_g0> ) .
:prefixID a g:Production;
rdf:value "4";
rdfs:comment "[4] prefixID ::= PREFIX PNAME_NS IRI_REF";
rdfs:label "prefixID";
g:first "@prefix";
g:nonTerminal :language;
g:seq (
:PREFIX
:PNAME_NS
:IRI_REF ) .
:statement a g:Production;
rdf:value "2";
rdfs:comment "[2] statement ::= directive \".\" | triples \".\"";
rdfs:label "statement";
g:alt (
[
a g:Production;
g:first "@base",
"@prefix";
g:follow "(",
"@base",
"@prefix",
"[",
:ANON,
:BLANK_NODE_LABEL,
:IRI_REF,
:PNAME_LN,
:PNAME_NS;
g:nonTerminal :language;
g:seq (
:directive
"." ) ]
[
a g:Production;
g:first "(",
"[",
:ANON,
:BLANK_NODE_LABEL,
:IRI_REF,
:PNAME_LN,
:PNAME_NS;
g:follow "(",
"@base",
"@prefix",
"[",
:ANON,
:BLANK_NODE_LABEL,
:IRI_REF,
:PNAME_LN,
:PNAME_NS;
g:nonTerminal :language;
g:seq (
:triples
"." ) ] );
g:first "(",
"@base",
"@prefix",
"[",
:ANON,
:BLANK_NODE_LABEL,
:IRI_REF,
:PNAME_LN,
:PNAME_NS;
g:follow "(",
"@base",
"@prefix",
"[",
:ANON,
:BLANK_NODE_LABEL,
:IRI_REF,
:PNAME_LN,
:PNAME_NS;
g:nonTerminal :language .
:subject a g:Production;
rdf:value "10";
rdfs:comment "[10] subject ::= IRIref | blank";
rdfs:label "subject";
g:alt (
:IRIref
:blank );
g:first "(",
"[",
:ANON,
:BLANK_NODE_LABEL,
:IRI_REF,
:PNAME_LN,
:PNAME_NS;
g:follow "a",
:IRI_REF,
:PNAME_LN,
:PNAME_NS;
g:nonTerminal :language .
:triples a g:Production;
rdf:value "6";
rdfs:comment "[6] triples ::= subject predicateObjectList";
rdfs:label "triples";
g:first "(",
"[",
:ANON,
:BLANK_NODE_LABEL,
:IRI_REF,
:PNAME_LN,
:PNAME_NS;
g:nonTerminal :language;
g:seq (
:subject
:predicateObjectList ) .
:turtleDoc a g:Production;
rdf:value "1";
rdfs:comment "[1] turtleDoc ::= (statement)*";
rdfs:label "turtleDoc";
g:alt (
g:empty
[
a g:Production;
g:first "(",
"@base",
"@prefix",
"[",
:ANON,
:BLANK_NODE_LABEL,
:IRI_REF,
:PNAME_LN,
:PNAME_NS;
g:follow g:eof;
g:nonTerminal :language;
g:seq (
:statement
:turtleDoc ) ] );
g:first "(",
"@base",
"@prefix",
"[",
g:eps,
:ANON,
:BLANK_NODE_LABEL,
:IRI_REF,
:PNAME_LN,
:PNAME_NS;
g:follow g:eof;
g:nonTerminal :language;
g:star :statement .
:verb a g:Production;
rdf:value "9";
rdfs:comment "[9] verb ::= predicate | \"a\"";
rdfs:label "verb";
g:alt (
:predicate
"a" );
g:first "a",
:IRI_REF,
:PNAME_LN,
:PNAME_NS;
g:follow "(",
"[",
"false",
"true",
:ANON,
:BLANK_NODE_LABEL,
:DECIMAL,
:DECIMAL_NEGATIVE,
:DECIMAL_POSITIVE,
:DOUBLE,
:DOUBLE_NEGATIVE,
:DOUBLE_POSITIVE,
:INTEGER,
:INTEGER_NEGATIVE,
:INTEGER_POSITIVE,
:IRI_REF,
:PNAME_LN,
:PNAME_NS,
:STRING_LITERAL1,
:STRING_LITERAL2,
:STRING_LITERAL_LONG1,
:STRING_LITERAL_LONG2;
g:nonTerminal :language .
<#_g0> a g:Production;
g:alt (
g:empty
[
a g:Production;
g:first ";";
g:nonTerminal :language;
g:seq (
<#_g1>
<#_g0> ) ] );
g:first ";",
g:eps;
g:nonTerminal :language;
g:star <#_g1> .
<#_g1> a g:Production;
g:first ";";
g:follow ";";
g:nonTerminal :language;
g:seq (
";"
<#_g2> ) .
<#_g2> a g:Production;
g:alt (
g:empty
<#_g3> );
g:first "a",
g:eps,
:IRI_REF,
:PNAME_LN,
:PNAME_NS;
g:follow ";";
g:nonTerminal :language;
g:opt <#_g3> .
<#_g3> a g:Production;
g:first "a",
:IRI_REF,
:PNAME_LN,
:PNAME_NS;
g:follow ";";
g:nonTerminal :language;
g:seq (
:verb
:objectList ) .
<#_g4> a g:Production;
g:alt (
g:empty
[
a g:Production;
g:first ",";
g:follow ";";
g:nonTerminal :language;
g:seq (
<#_g5>
<#_g4> ) ] );
g:first ",",
g:eps;
g:follow ";";
g:nonTerminal :language;
g:star <#_g5> .
<#_g5> a g:Production;
g:first ",";
g:follow ",";
g:nonTerminal :language;
g:seq (
","
:object ) .
<#_g6> a g:Production;
g:alt (
g:empty
[
a g:Production;
g:first "(",
"[",
"false",
"true",
:ANON,
:BLANK_NODE_LABEL,
:DECIMAL,
:DECIMAL_NEGATIVE,
:DECIMAL_POSITIVE,
:DOUBLE,
:DOUBLE_NEGATIVE,
:DOUBLE_POSITIVE,
:INTEGER,
:INTEGER_NEGATIVE,
:INTEGER_POSITIVE,
:IRI_REF,
:PNAME_LN,
:PNAME_NS,
:STRING_LITERAL1,
:STRING_LITERAL2,
:STRING_LITERAL_LONG1,
:STRING_LITERAL_LONG2;
g:nonTerminal :language;
g:seq (
:object
<#_g6> ) ] );
g:first "(",
"[",
"false",
"true",
g:eps,
:ANON,
:BLANK_NODE_LABEL,
:DECIMAL,
:DECIMAL_NEGATIVE,
:DECIMAL_POSITIVE,
:DOUBLE,
:DOUBLE_NEGATIVE,
:DOUBLE_POSITIVE,
:INTEGER,
:INTEGER_NEGATIVE,
:INTEGER_POSITIVE,
:IRI_REF,
:PNAME_LN,
:PNAME_NS,
:STRING_LITERAL1,
:STRING_LITERAL2,
:STRING_LITERAL_LONG1,
:STRING_LITERAL_LONG2;
g:nonTerminal :language;
g:star :object .
<#_g7> a g:Production;
g:alt (
g:empty
<#_g8> );
g:first "^^",
g:eps,
:LANGTAG;
g:follow "(",
",",
"[",
"false",
"true",
:ANON,
:BLANK_NODE_LABEL,
:DECIMAL,
:DECIMAL_NEGATIVE,
:DECIMAL_POSITIVE,
:DOUBLE,
:DOUBLE_NEGATIVE,
:DOUBLE_POSITIVE,
:INTEGER,
:INTEGER_NEGATIVE,
:INTEGER_POSITIVE,
:IRI_REF,
:PNAME_LN,
:PNAME_NS,
:STRING_LITERAL1,
:STRING_LITERAL2,
:STRING_LITERAL_LONG1,
:STRING_LITERAL_LONG2;
g:nonTerminal :language;
g:opt <#_g8> .
<#_g8> a g:Production;
g:alt (
:LANGTAG
[
a g:Production;
g:first "^^";
g:follow "(",
",",
"[",
"false",
"true",
:ANON,
:BLANK_NODE_LABEL,
:DECIMAL,
:DECIMAL_NEGATIVE,
:DECIMAL_POSITIVE,
:DOUBLE,
:DOUBLE_NEGATIVE,
:DOUBLE_POSITIVE,
:INTEGER,
:INTEGER_NEGATIVE,
:INTEGER_POSITIVE,
:IRI_REF,
:PNAME_LN,
:PNAME_NS,
:STRING_LITERAL1,
:STRING_LITERAL2,
:STRING_LITERAL_LONG1,
:STRING_LITERAL_LONG2;
g:nonTerminal :language;
g:seq (
"^^"
:IRIref ) ] );
g:first "^^",
:LANGTAG;
g:follow "(",
",",
"[",
"false",
"true",
:ANON,
:BLANK_NODE_LABEL,
:DECIMAL,
:DECIMAL_NEGATIVE,
:DECIMAL_POSITIVE,
:DOUBLE,
:DOUBLE_NEGATIVE,
:DOUBLE_POSITIVE,
:INTEGER,
:INTEGER_NEGATIVE,
:INTEGER_POSITIVE,
:IRI_REF,
:PNAME_LN,
:PNAME_NS,
:STRING_LITERAL1,
:STRING_LITERAL2,
:STRING_LITERAL_LONG1,
:STRING_LITERAL_LONG2;
g:nonTerminal :language .
[ a g:Production;
g:first "(",
"@base",
"@prefix",
"[",
g:eps,
:ANON,
:BLANK_NODE_LABEL,
:IRI_REF,
:PNAME_LN,
:PNAME_NS;
g:seq (
:turtleDoc ) ].
[ a g:Production;
g:first ";",
g:eps;
g:seq (
<#_g0> ) ].
[ a g:Production;
g:first ",",
g:eps;
g:seq (
<#_g4> ) ].
[ a g:Production;
g:first "(",
"[",
"false",
"true",
g:eps,
:ANON,
:BLANK_NODE_LABEL,
:DECIMAL,
:DECIMAL_NEGATIVE,
:DECIMAL_POSITIVE,
:DOUBLE,
:DOUBLE_NEGATIVE,
:DOUBLE_POSITIVE,
:INTEGER,
:INTEGER_NEGATIVE,
:INTEGER_POSITIVE,
:IRI_REF,
:PNAME_LN,
:PNAME_NS,
:STRING_LITERAL1,
:STRING_LITERAL2,
:STRING_LITERAL_LONG1,
:STRING_LITERAL_LONG2;
g:seq (
<#_g6> ) ].
[ g:first g:eps;
g:seq () ].
[ a g:Production;
g:first "^^",
g:eps,
:LANGTAG;
g:seq (
<#_g7> ) ].
[ a g:Production;
g:first :IRI_REF,
:PNAME_LN,
:PNAME_NS;
g:seq (
:IRIref ) ].
[ a g:Production;
g:first "(",
"[",
"false",
"true",
g:eps,
:ANON,
:BLANK_NODE_LABEL,
:DECIMAL,
:DECIMAL_NEGATIVE,
:DECIMAL_POSITIVE,
:DOUBLE,
:DOUBLE_NEGATIVE,
:DOUBLE_POSITIVE,
:INTEGER,
:INTEGER_NEGATIVE,
:INTEGER_POSITIVE,
:IRI_REF,
:PNAME_LN,
:PNAME_NS,
:STRING_LITERAL1,
:STRING_LITERAL2,
:STRING_LITERAL_LONG1,
:STRING_LITERAL_LONG2;
g:seq (
<#_g6>
")" ) ].
[ a g:Production;
g:first "a",
:IRI_REF,
:PNAME_LN,
:PNAME_NS;
g:seq (
:predicateObjectList
"]" ) ].
[ a g:Production;
g:first "(",
"[",
"false",
"true",
:ANON,
:BLANK_NODE_LABEL,
:DECIMAL,
:DECIMAL_NEGATIVE,
:DECIMAL_POSITIVE,
:DOUBLE,
:DOUBLE_NEGATIVE,
:DOUBLE_POSITIVE,
:INTEGER,
:INTEGER_NEGATIVE,
:INTEGER_POSITIVE,
:IRI_REF,
:PNAME_LN,
:PNAME_NS,
:STRING_LITERAL1,
:STRING_LITERAL2,
:STRING_LITERAL_LONG1,
:STRING_LITERAL_LONG2;
g:seq (
:object ) ].
[ a g:Production;
g:first "(",
"[",
"false",
"true",
:ANON,
:BLANK_NODE_LABEL,
:DECIMAL,
:DECIMAL_NEGATIVE,
:DECIMAL_POSITIVE,
:DOUBLE,
:DOUBLE_NEGATIVE,
:DOUBLE_POSITIVE,
:INTEGER,
:INTEGER_NEGATIVE,
:INTEGER_POSITIVE,
:IRI_REF,
:PNAME_LN,
:PNAME_NS,
:STRING_LITERAL1,
:STRING_LITERAL2,
:STRING_LITERAL_LONG1,
:STRING_LITERAL_LONG2;
g:seq (
:objectList
<#_g0> ) ].
[ a g:Production;
g:first "a",
g:eps,
:IRI_REF,
:PNAME_LN,
:PNAME_NS;
g:seq (
<#_g2> ) ].
[ a g:Production;
g:first "(",
"[",
"false",
"true",
:ANON,
:BLANK_NODE_LABEL,
:DECIMAL,
:DECIMAL_NEGATIVE,
:DECIMAL_POSITIVE,
:DOUBLE,
:DOUBLE_NEGATIVE,
:DOUBLE_POSITIVE,
:INTEGER,
:INTEGER_NEGATIVE,
:INTEGER_POSITIVE,
:IRI_REF,
:PNAME_LN,
:PNAME_NS,
:STRING_LITERAL1,
:STRING_LITERAL2,
:STRING_LITERAL_LONG1,
:STRING_LITERAL_LONG2;
g:seq (
:objectList ) ].
[ a g:Production;
g:first "a",
:IRI_REF,
:PNAME_LN,
:PNAME_NS;
g:seq (
:predicateObjectList ) ].
[ a g:Production;
g:seq (
:IRI_REF ) ].
[ a g:Production;
g:seq (
:PNAME_NS
:IRI_REF ) ].
[ a g:Production;
g:seq (
"." ) ].
[ a g:Production;
g:seq (
")" ) ].
[ a g:Production;
g:seq (
"]" ) ].
#ENDS