📄 turtleparser.java
字号:
/* Generated By:JavaCC: Do not edit this line. TurtleParser.java */
/*
* (c) Copyright 2006, 2007 Hewlett-Packard Development Company, LP
* All rights reserved.
*/
package com.hp.hpl.jena.n3.turtle.parser ;
import com.hp.hpl.jena.n3.turtle.ParserBase ;
import com.hp.hpl.jena.graph.* ;
public class TurtleParser extends ParserBase implements TurtleParserConstants {
// --- Entry point
final public void parse() throws ParseException {
label_1:
while (true) {
switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
case PREFIX:
case INTEGER:
case DECIMAL:
case DOUBLE:
case STRING_LITERAL1:
case STRING_LITERAL2:
case STRING_LITERAL_LONG1:
case STRING_LITERAL_LONG2:
case Q_IRIref:
case QNAME_NS:
case QNAME:
case BLANK_NODE_LABEL:
case VAR1:
case VAR2:
case LPAREN:
case NIL:
case LBRACE:
case LBRACKET:
case ANON:
;
break;
default:
jj_la1[0] = jj_gen;
break label_1;
}
Statement();
}
jj_consume_token(0);
}
final public void Statement() throws ParseException {
switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
case PREFIX:
Directive();
break;
case INTEGER:
case DECIMAL:
case DOUBLE:
case STRING_LITERAL1:
case STRING_LITERAL2:
case STRING_LITERAL_LONG1:
case STRING_LITERAL_LONG2:
case Q_IRIref:
case QNAME_NS:
case QNAME:
case BLANK_NODE_LABEL:
case VAR1:
case VAR2:
case LPAREN:
case NIL:
case LBRACE:
case LBRACKET:
case ANON:
TriplesSameSubject();
break;
default:
jj_la1[1] = jj_gen;
jj_consume_token(-1);
throw new ParseException();
}
jj_consume_token(DOT);
}
final public void Directive() throws ParseException {
Token t ; Node n ;
jj_consume_token(PREFIX);
t = jj_consume_token(QNAME_NS);
n = Q_IRI_REF();
String s = fixupPrefix(t.image, t.beginLine, t.beginColumn) ;
setPrefix(s, n.getURI()) ;
}
// N3
// ---- TRIPLES
// <<<<< SPARQL extract
final public void TriplesSameSubject() throws ParseException {
Node s ;
switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
case INTEGER:
case DECIMAL:
case DOUBLE:
case STRING_LITERAL1:
case STRING_LITERAL2:
case STRING_LITERAL_LONG1:
case STRING_LITERAL_LONG2:
case Q_IRIref:
case QNAME_NS:
case QNAME:
case BLANK_NODE_LABEL:
case VAR1:
case VAR2:
case NIL:
case LBRACE:
case ANON:
s = VarOrTerm();
PropertyListNotEmpty(s);
break;
case LPAREN:
case LBRACKET:
// Any of the triple generating syntax elements
s = TriplesNode();
PropertyList(s);
break;
default:
jj_la1[2] = jj_gen;
jj_consume_token(-1);
throw new ParseException();
}
}
final public void PropertyList(Node s) throws ParseException {
switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
case KW_A:
case Q_IRIref:
case QNAME_NS:
case QNAME:
case ARROW:
PropertyListNotEmpty(s);
break;
default:
jj_la1[3] = jj_gen;
;
}
}
// >>>>> SPARQL extract
// Non-recursive for Turtle long PropertyList tests
final public void PropertyListNotEmpty(Node s) throws ParseException {
Node p ;
p = Verb();
ObjectList(s, p);
label_2:
while (true) {
switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
case SEMICOLON:
;
break;
default:
jj_la1[4] = jj_gen;
break label_2;
}
jj_consume_token(SEMICOLON);
switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
case KW_A:
case Q_IRIref:
case QNAME_NS:
case QNAME:
case ARROW:
p = Verb();
ObjectList(s, p);
break;
default:
jj_la1[5] = jj_gen;
;
}
}
}
// Non-recursive for Turtle long PropertyList tests
final public void ObjectList(Node s, Node p) throws ParseException {
Node o ;
Object(s, p);
label_3:
while (true) {
switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
case COMMA:
;
break;
default:
jj_la1[6] = jj_gen;
break label_3;
}
jj_consume_token(COMMA);
Object(s, p);
}
}
final public void Object(Node s, Node p) throws ParseException {
Node o ;
o = GraphNode();
Triple t = new Triple(s,p,o) ;
emitTriple(token.beginLine, token.beginColumn, t) ;
}
// <<<<< SPARQL extract
final public Node Verb() throws ParseException {
Node p ;
switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
case Q_IRIref:
case QNAME_NS:
case QNAME:
p = IRIref();
break;
case KW_A:
jj_consume_token(KW_A);
p = nRDFtype ;
break;
case ARROW:
jj_consume_token(ARROW);
p = nLogImplies ;
if ( strictTurtle )
raiseException("=> (log:implies) not legalin Turtle",
token.beginLine, token.beginColumn ) ;
break;
default:
jj_la1[7] = jj_gen;
jj_consume_token(-1);
throw new ParseException();
}
{if (true) return p ;}
throw new Error("Missing return statement in function");
}
// -------- Triple expansions
// Anything that can stand in a node slot and which is
// a number of triples
final public Node TriplesNode() throws ParseException {
Node n ;
switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
case LPAREN:
n = Collection();
{if (true) return n ;}
break;
case LBRACKET:
n = BlankNodePropertyList();
{if (true) return n ;}
break;
default:
jj_la1[8] = jj_gen;
jj_consume_token(-1);
throw new ParseException();
}
throw new Error("Missing return statement in function");
}
final public Node BlankNodePropertyList() throws ParseException {
jj_consume_token(LBRACKET);
Node n = createBNode() ;
PropertyListNotEmpty(n);
jj_consume_token(RBRACKET);
{if (true) return n ;}
throw new Error("Missing return statement in function");
}
// ------- RDF collections
// Code not as SPARQL/ARQ because of output ordering.
final public Node Collection() throws ParseException {
Node listHead = nRDFnil ; Node lastCell = null ; Node n ;
jj_consume_token(LPAREN);
label_4:
while (true) {
Node cell = createBNode() ;
if ( listHead == nRDFnil )
listHead = cell ;
if ( lastCell != null )
emitTriple(token.beginLine, token.beginColumn,
new Triple(lastCell, nRDFrest, cell)) ;
n = GraphNode();
emitTriple(token.beginLine, token.beginColumn,
new Triple(cell, nRDFfirst, n)) ;
lastCell = cell ;
switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
case INTEGER:
case DECIMAL:
case DOUBLE:
case STRING_LITERAL1:
case STRING_LITERAL2:
case STRING_LITERAL_LONG1:
case STRING_LITERAL_LONG2:
case Q_IRIref:
case QNAME_NS:
case QNAME:
case BLANK_NODE_LABEL:
case VAR1:
case VAR2:
case LPAREN:
case NIL:
case LBRACE:
case LBRACKET:
case ANON:
;
break;
default:
jj_la1[9] = jj_gen;
break label_4;
}
}
jj_consume_token(RPAREN);
if ( lastCell != null )
emitTriple(token.beginLine, token.beginColumn,
new Triple(lastCell, nRDFrest, nRDFnil)) ;
{if (true) return listHead ;}
throw new Error("Missing return statement in function");
}
// -------- Nodes in a graph pattern or template
final public Node GraphNode() throws ParseException {
Node n ;
switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
case INTEGER:
case DECIMAL:
case DOUBLE:
case STRING_LITERAL1:
case STRING_LITERAL2:
case STRING_LITERAL_LONG1:
case STRING_LITERAL_LONG2:
case Q_IRIref:
case QNAME_NS:
case QNAME:
case BLANK_NODE_LABEL:
case VAR1:
case VAR2:
case NIL:
case LBRACE:
case ANON:
n = VarOrTerm();
{if (true) return n ;}
break;
case LPAREN:
case LBRACKET:
n = TriplesNode();
{if (true) return n ;}
break;
default:
jj_la1[10] = jj_gen;
jj_consume_token(-1);
throw new ParseException();
}
throw new Error("Missing return statement in function");
}
final public Node VarOrTerm() throws ParseException {
Node n = null ;
switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
case VAR1:
case VAR2:
n = Var();
break;
case INTEGER:
case DECIMAL:
case DOUBLE:
case STRING_LITERAL1:
case STRING_LITERAL2:
case STRING_LITERAL_LONG1:
case STRING_LITERAL_LONG2:
case Q_IRIref:
case QNAME_NS:
case QNAME:
case BLANK_NODE_LABEL:
case NIL:
case ANON:
n = GraphTerm();
break;
case LBRACE:
n = Formula();
break;
default:
jj_la1[11] = jj_gen;
jj_consume_token(-1);
throw new ParseException();
}
{if (true) return n ;}
throw new Error("Missing return statement in function");
}
final public Node Formula() throws ParseException {
Token t ;
t = jj_consume_token(LBRACE);
startFormula(t.beginLine, t.beginColumn) ;
TriplesSameSubject();
label_5:
while (true) {
switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
case DOT:
;
break;
default:
jj_la1[12] = jj_gen;
break label_5;
}
jj_consume_token(DOT);
switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
case INTEGER:
case DECIMAL:
case DOUBLE:
case STRING_LITERAL1:
case STRING_LITERAL2:
case STRING_LITERAL_LONG1:
case STRING_LITERAL_LONG2:
case Q_IRIref:
case QNAME_NS:
case QNAME:
case BLANK_NODE_LABEL:
case VAR1:
case VAR2:
case LPAREN:
case NIL:
case LBRACE:
case LBRACKET:
case ANON:
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -