diff --git a/.bzrignore b/.bzrignore index 5ec98a1fbab419ced94b48ab801f42008f02d9df..27643b65a28943852cb72eaf98f13be2e3a4550a 100644 --- a/.bzrignore +++ b/.bzrignore @@ -7,4 +7,3 @@ plugins testontologies/ontologyV06_Jambalaya.properties siaras/Parser.java siaras/Siaras.ast -siaras/Siaras.jjt diff --git a/CompilerGeneration.jrag b/CompilerGeneration.jrag index 9d931ed380127865d2daa610f6abd087fe44bc14..9ef6ae2b121e7019bb66dcfbc9205db67fe06e82 100644 --- a/CompilerGeneration.jrag +++ b/CompilerGeneration.jrag @@ -11,8 +11,36 @@ aspect AbsGrammarGeneration { } public void Start.genAbsGrammar(PrintStream pStream) { - pStream.println("Start ::= Device*;"); + pStream.println("// Predefined types"); + pStream.println("Start ::= Element*;"); pStream.println("abstract Thing ::=;"); + pStream.println("abstract Element;"); + pStream.println("ComplexElement ::= <IDENTIFIER> Attribute* Element*;"); + pStream.println("abstract SimpleElement : Element;"); + pStream.println("StringElement : SimpleElement ::= <IDENTIFIER>;"); + pStream.println("IntElement : SimpleElement ::= <INTEGER_LITERAL>;"); + pStream.println("FloatElement : SimpleElement ::= <FLOAT_LITERAL>;"); + pStream.println("Attribute ::= Value;"); + pStream.println("RdfDatatype : Attribute ::= ;"); + pStream.println("RdfId : Attribute ::= ;"); + pStream.println("Xmlns : Attribute ::= ;"); + pStream.println("XmlnsProtege : Attribute ::= ;"); + pStream.println("XmlnsRdf : Attribute ::= ;"); + pStream.println("XmlnsXsd : Attribute ::= ;"); + pStream.println("XmlnsRdfs : Attribute ::= ;"); + pStream.println("XmlnsOwl : Attribute ::= ;"); + pStream.println("XmlnsDaml : Attribute ::= ;"); + pStream.println("XmlnsP1 : Attribute ::= ;"); + pStream.println("XmlnsDc : Attribute ::= ;"); + pStream.println("XmlBase : Attribute ::= ;"); + pStream.println("RdfResource : Attribute ::= ;"); + pStream.println("RdfAbout : Attribute ::= ;"); + pStream.println("RdfParseType : Attribute ::= ;"); + pStream.println("Version : Attribute ::= ;"); + pStream.println("Value ::= <STRING_LITERAL>;"); + pStream.println("AttrValue ::= <STRING_LITERAL>;"); + pStream.println(); + pStream.println("// Generated types"); super.genAbsGrammar(pStream); } diff --git a/GenCompiler.java b/GenCompiler.java index b6ef248dd5b7c448398eb6aded664728737af0ab..c58bc795a29b093beb53ebe67abd2a7ee1fbea5a 100644 --- a/GenCompiler.java +++ b/GenCompiler.java @@ -24,9 +24,9 @@ public class GenCompiler extends Parser { PrintStream pStream = new PrintStream(new File(fileName)); ast.genAbsGrammar(pStream); // Generate JavaCC configuration - fileName = "siaras/Siaras.jjt"; - pStream = new PrintStream(new File(fileName)); - ast.genJavaCC(pStream); +// fileName = "siaras/Siaras.jjt"; +// pStream = new PrintStream(new File(fileName)); +// ast.genJavaCC(pStream); // Generate Parser.java fileName = "siaras/Parser.java"; pStream = new PrintStream(new File(fileName)); diff --git a/siaras/Siaras.jjt b/siaras/Siaras.jjt new file mode 100644 index 0000000000000000000000000000000000000000..793d474ada090f9d87e7f31fdc1f63c4da400b46 --- /dev/null +++ b/siaras/Siaras.jjt @@ -0,0 +1,683 @@ +options { + MULTI = true; + VISITOR = true; + NODE_DEFAULT_VOID = true; + NODE_SCOPE_HOOK = false; + NODE_PREFIX = ""; + JAVA_UNICODE_ESCAPE = true; + STATIC = false; +} // options + + +PARSER_BEGIN(SiarasParser) +package AST; +public class SiarasParser { +} +PARSER_END(SiarasParser) + + +//--------------------------------------------------------------------// +// LEXICAL TOKENS // +//--------------------------------------------------------------------// + +<DEFAULT, BOUNDS> SKIP : /* WHITE SPACE */ +{ + " " + | + "\t" + | + "\n" + | + "\r" + | + "\f" +}// WHITE SPACE + + +// <DEFAULT,BOUNDS> SPECIAL_TOKEN : /* COMMENTS */ +// { +// <SLASH_SLASH_COMMENT : "//" (~["\n","\r"])* > +// } + +SPECIAL_TOKEN : /* COMMENTS */ +{ +// <SLASH_STAR_COMMENT : "/*" (~["*"])* "*" ("*" | (~["*","/"] (~["*"])* "*"))* "/" > +< "<!--" ( ~["-"] | ( "-" ~["-"] ) )* "-->"> + | < "<rdfs:comment" ( ~["<"] | ( "<" ~["/"] ) )* "</rdfs:comment>" > +// <XML_COMMENT : "<!--" (~["-","-",">"])* "-->" > +}// COMMENTS + + +// <BOUNDS> TOKEN: { +// < BEGINCOMMENT : "<!--" > +// | < ENDCOMMENT : "-->" > +// } + +<DEFAULT, BOUNDS> TOKEN : /* RESERVED WORDS AND LITERALS */ +{ +// < OWL_ALLVALUESFROM : "owl:allValuesFrom" > +// | < OWL_ALLDIFFERENT : "owl:AllDifferent" > +// | < OWL_CARDINALITY : "owl:cardinality" > +// | < OWL_CLASS : "owl:Class" > +// | < OWL_DATARANGE : "owl:DataRange" > +// | < OWL_DATATYPEPROPERTY : "owl:DatatypeProperty" > +// | < OWL_DISJOINTWITH : "owl:disjointWith" > +// | < OWL_EQUIVALENTCLASS : "owl:equivalentClass" > +// | < OWL_FUNCTIONALPROPERTY : "owl:FunctionalProperty" > +// | < OWL_IMPORTS : "owl:imports" > +// | < OWL_INTERSECTIONOF : "owl:intersectionOf" > +// | < OWL_INVERSEOF : "owl:inverseOf" > +// | < OWL_MINCARDINALITY : "owl:minCardinality" > +// | < OWL_OBJECTPROPERTY : "owl:ObjectProperty" > +// | < OWL_ONPROPERTY : "owl:onProperty" > +// | < OWL_ONEOF : "owl:oneOf" > +// | < OWL_ONTOLOGY : "owl:Ontology" > +// | < OWL_RESTRICTION : "owl:Restriction" > +// | < OWL_SOMEVALUESFROM : "owl:someValuesFrom" > +// | < OWL_UNIONOF : "owl:unionOf" > +// | < RDF_RDF : "rdf:RDF" > + < RDF_ABOUT : "rdf:about" > + | < RDF_DATATYPE : "rdf:datatype" > + | < RDF_ID : "rdf:ID" > +// | < RDF_FIRST : "rdf:first" > +// | < RDF_REST : "rdf:rest" > + | < RDF_PARSETYPE : "rdf:parseType" > + | < RDF_RESOURCE : "rdf:resource" > +// | < RDF_TYPE : "rdf:type" > + | < RDFS_COMMENT : "rdfs:comment" > +// | < RDFS_DOMAIN : "rdfs:domain" > +// | < RDFS_RANGE : "rdfs:range" > +// | < RDFS_SUBCLASSOF : "rdfs:subClassOf" > +// | < RDFS_SUBPROPERTYOF : "rdfs:subPropertyOf" > + | < VERSION : "version" > +// | < XML : "xml" > + | < XML_BASE : "xml:base" > + | < XMLNS : "xmlns" > + | < XMLNS_DAML : "xmlns:daml" > + | < XMLNS_DC : "xmlns:dc" > + | < XMLNS_P1 : "xmlns:p1" > + | < XMLNS_PROTEGE : "xmlns:protege" > + | < XMLNS_RDF : "xmlns:rdf" > + | < XMLNS_XSD : "xmlns:xsd" > + | < XMLNS_RDFS : "xmlns:rdfs" > + | < XMLNS_OWL : "xmlns:owl" > + +}// RESERVED WORDS AND LITERALS +<DEFAULT, BOUNDS> TOKEN : /* LITERALS */ +{ + < INTEGER_LITERAL: + <DECIMAL_LITERAL> (["l","L"])? + | + <HEX_LITERAL> (["l","L"])? + | + <OCTAL_LITERAL> (["l","L"])? + > + | + < #DECIMAL_LITERAL: ["1"-"9"] (["0"-"9"])* > + | + < #HEX_LITERAL: "0" ["x","X"] (["0"-"9","a"-"f","A"-"F"])+ > + | + < #OCTAL_LITERAL: "0" (["0"-"7"])* > + | + < FLOAT_LITERAL: + (["0"-"9"])+ "." (["0"-"9"])* (<EXPONENT>)? (["f","F","d","D"])? + | + "." (["0"-"9"])+ (<EXPONENT>)? (["f","F","d","D"])? + | + (["0"-"9"])+ <EXPONENT> (["f","F","d","D"])? + | + (["0"-"9"])+ (<EXPONENT>)? ["f","F","d","D"] + > + | + < #EXPONENT: ["e","E"] (["+","-"])? (["0"-"9"])+ > + | + < CHARACTER_LITERAL: + "'" + ( (~["'","\\","\n","\r"]) + | + ("\\" + ( ["n","t","b","r","f","\\","'","\""] + | + ["0"-"7"] ( ["0"-"7"] )? + | + ["0"-"3"] ["0"-"7"] ["0"-"7"] + ) + ) + ) + "'" + > + | + < STRING_LITERAL: + "\"" + ( (~["\"","\\","\n","\r"]) + | + ("\\" + ( ["n","t","b","r","f","\\","'","\""] + | + ["0"-"7"] ( ["0"-"7"] )? + | + ["0"-"3"] ["0"-"7"] ["0"-"7"] + ) + ) + )* + "\"" + > +// | +// < TOKEN_LITERAL: +// ( (~[" ","\\","\n","\r"]) +// )* +// > +}// LITERALS + +<DEFAULT, BOUNDS> TOKEN : /* IDENTIFIERS */ +{ + < IDENTIFIER: <LETTER> (<LETTER>|<DIGIT>|"-")* > + | + < #LETTER: + [ + "\u0024", + "\u0041"-"\u005a", + "\u005f", + "\u0061"-"\u007a", + "\u00c0"-"\u00d6", + "\u00d8"-"\u00f6", + "\u00f8"-"\u00ff", + "\u0100"-"\u1fff", + "\u3040"-"\u318f", + "\u3300"-"\u337f", + "\u3400"-"\u3d2d", + "\u4e00"-"\u9fff", + "\uf900"-"\ufaff" + ] + > + | + < #DIGIT: + [ + "\u0030"-"\u0039", + "\u0660"-"\u0669", + "\u06f0"-"\u06f9", + "\u0966"-"\u096f", + "\u09e6"-"\u09ef", + "\u0a66"-"\u0a6f", + "\u0ae6"-"\u0aef", + "\u0b66"-"\u0b6f", + "\u0be7"-"\u0bef", + "\u0c66"-"\u0c6f", + "\u0ce6"-"\u0cef", + "\u0d66"-"\u0d6f", + "\u0e50"-"\u0e59", + "\u0ed0"-"\u0ed9", + "\u1040"-"\u1049" + ] + > +}// IDENTIFIERS + +<DEFAULT,BOUNDS> TOKEN : /* SEPARATORS */ +{ +// < LPAREN : "(" > +// | < RPAREN : ")" > + < LBRACE : "{" > + | < RBRACE : "}" > + | < LBRACKET : "[" > + | < RBRACKET : "]" > + | < SEMICOLON : ";" > +// | < COMMA : "," > +// | < DOT : "." > +}// SEPARATORS + + +<DEFAULT,BOUNDS> TOKEN : /* OPERATORS */ +{ + < ASSIGN : "=" > +// | < GT : ">" > +// | < LT : "<" > +// | < BANG : "!" > +// | < TILDE : "~" > +// | < HOOK : "?" > +// | < COLON : ":" > +// | < EQ : "==" > +// | < LE : "<=" > +// | < GE : ">=" > +// | < NE : "!=" > +// | < SC_OR : "||" > +// | < SC_AND : "&&" > +// | < INCR : "++" > +// | < DECR : "--" > +// | < PLUS : "+" > +// | < MINUS : "-" > +// | < STAR : "*" > +// | < SLASH : "/" > +// | < BIT_AND : "&" > +// | < BIT_OR : "|" > +// | < XOR : "^" > +// | < REM : "%" > +// | < LSHIFT : "<<" > +// | < RSIGNEDSHIFT : ">>" > +// | < RUNSIGNEDSHIFT : ">>>" > +// | < PLUSASSIGN : "+=" > +// | < MINUSASSIGN : "-=" > +// | < STARASSIGN : "*=" > +// | < SLASHASSIGN : "/=" > +// | < ANDASSIGN : "&=" > +// | < ORASSIGN : "|=" > +// | < XORASSIGN : "^=" > +// | < REMASSIGN : "%=" > +// | < LSHIFTASSIGN : "<<=" > +// | < RSIGNEDSHIFTASSIGN : ">>=" > +// | < RUNSIGNEDSHIFTASSIGN : ">>>=" > +}// OPERATORS + + +// <DEFAULT,BOUNDS> TOKEN : /* TEXT */ +// { +// < TEXT : <LETTER> (~["<",">"])* > +// }// TEXT + + +//--------------------------------------------------------------------// +// THE OWL LANGUAGE GRAMMAR // +//--------------------------------------------------------------------// + +Start Start() #Start : {} +{ + ("<?xml version=\"1.0\"?>")? + ElementList() + { return jjtThis; } +} + +// void Specification() #Specification : {} +// { +// XmlHeader() +// RdfDeclaration() +// } + +// void XmlHeader() #XmlHeader : {} +// { +// "<?" <XML> AttributeList() "?>" +// } + +// void RdfDeclaration() #RdfDeclaration : {} +// { +// "<" <RDF_RDF> AttributeList() ">" +// ElementList() +// "</" <RDF_RDF> ">" +// } + +void ElementList() #List : {} +{ + (Element())* +} + +void AttributeList() #List : {} +{ + (Attribute())* +} + +void ComplexElement() #ComplexElement : {Token t;} +{ + "<" t=<IDENTIFIER> AttributeList() + (">" ElementList() "</" <IDENTIFIER> ">" | ElementList() "/>") + {jjtThis.setIDENTIFIER(t.image);} +} + + +void Element() : {} +{ + ComplexElement() + | SimpleElement() +} + +void SimpleElement() : {} +{ + IntElement() + | FloatElement() + | StringElement() +} + +void IntElement() #IntElement : { Token t; } +{ + t = <INTEGER_LITERAL> + {jjtThis.setINTEGER_LITERAL(t.image);} +} + +void FloatElement() #FloatElement : { Token t; } +{ + t = <FLOAT_LITERAL> + {jjtThis.setFLOAT_LITERAL(t.image);} +} + +void StringElement() #StringElement : { Token t; } +{ + t = <IDENTIFIER> + {jjtThis.setIDENTIFIER(t.image);} +} + +// void OwlElement() : {} +// { +// OwlOntology() +// | OwlAllDifferent() +// | OwlAllValuesFrom() +// | OwlCardinality() +// | OwlClass() +// | OwlDataRange() +// | OwlDatatypeProperty() +// | OwlDisjointWith() +// | OwlEquivalentClass() +// | OwlFunctionalProperty() +// | OwlImports() +// | OwlIntersectionOf() +// | OwlInverseOf() +// | OwlMinCardinality() +// | OwlObjectProperty() +// | OwlOneOf() +// | OwlOnProperty() +// | OwlSomeValuesFrom() +// | OwlRestriction() +// | OwlUnionOf() +// } + +// void OwlOntology() #OwlOntology : {} +// { +// <OWL_ONTOLOGY> AttributeList() +// (">" ElementList() "</" <OWL_ONTOLOGY> ">" | ElementList() "/>") +// } + +// void OwlAllDifferent() #OwlAllDifferent : {} +// { +// <OWL_ALLDIFFERENT> AttributeList() +// (">" ElementList() "</" <OWL_ALLDIFFERENT> ">" | ElementList() "/>") +// } + +// void OwlAllValuesFrom() #OwlAllValuesFrom : {} +// { +// <OWL_ALLVALUESFROM> AttributeList() +// (">" ElementList() "</" <OWL_ALLVALUESFROM> ">" | ElementList() "/>") +// } + +// void OwlCardinality() #OwlCardinality : {} +// { +// <OWL_CARDINALITY> AttributeList() +// (">" ElementList() "</" <OWL_CARDINALITY> ">" | ElementList() "/>") +// } + +// void OwlClass() #OwlClass : {} +// { +// <OWL_CLASS> AttributeList() +// (">" ElementList() "</" <OWL_CLASS> ">" | ElementList() "/>") +// } + +// void OwlDataRange() #OwlDataRange : {} +// { +// <OWL_DATARANGE> AttributeList() +// (">" ElementList() "</" <OWL_DATARANGE> ">" | ElementList() "/>") +// } + +// void OwlDatatypeProperty() #OwlDatatypeProperty : {} +// { +// <OWL_DATATYPEPROPERTY> AttributeList() +// (">" ElementList() "</" <OWL_DATATYPEPROPERTY> ">" | ElementList() "/>") +// } + +// void OwlDisjointWith() #OwlDisjointWith : {} +// { +// <OWL_DISJOINTWITH> AttributeList() +// (">" ElementList() "</" <OWL_DISJOINTWITH> ">" | ElementList() "/>") +// } + +// void OwlEquivalentClass() #OwlEquivalentClass : {} +// { +// <OWL_EQUIVALENTCLASS> AttributeList() +// (">" ElementList() "</" <OWL_EQUIVALENTCLASS> ">" | ElementList() "/>") +// } + +// void OwlFunctionalProperty() #OwlFunctionalProperty : {} +// { +// <OWL_FUNCTIONALPROPERTY> AttributeList() +// (">" ElementList() "</" <OWL_FUNCTIONALPROPERTY> ">" | ElementList() "/>") +// } + +// void OwlImports () #OwlImports : {} +// { +// <OWL_IMPORTS> AttributeList() +// (">" ElementList() "</" <OWL_IMPORTS> ">" | ElementList() "/>") +// } + +// void OwlIntersectionOf () #OwlIntersectionOf : {} +// { +// <OWL_INTERSECTIONOF> AttributeList() +// (">" ElementList() "</" <OWL_INTERSECTIONOF> ">" | ElementList() "/>") +// } + +// void OwlInverseOf () #OwlInverseOf : {} +// { +// <OWL_INVERSEOF> AttributeList() +// (">" ElementList() "</" <OWL_INVERSEOF> ">" | ElementList() "/>") +// } + +// void OwlMinCardinality () #OwlMinCardinality : {} +// { +// <OWL_MINCARDINALITY> AttributeList() +// (">" ElementList() "</" <OWL_MINCARDINALITY> ">" | ElementList() "/>") +// } + +// void OwlObjectProperty () #OwlObjectProperty : {} +// { +// <OWL_OBJECTPROPERTY> AttributeList() +// (">" ElementList() "</" <OWL_OBJECTPROPERTY> ">" | ElementList() "/>") +// } + +// void OwlOneOf () #OwlOneOf : {} +// { +// <OWL_ONEOF> AttributeList() +// (">" ElementList() "</" <OWL_ONEOF> ">" | ElementList() "/>") +// } + +// void OwlOnProperty () #OwlOnProperty : {} +// { +// <OWL_ONPROPERTY> AttributeList() +// (">" ElementList() "</" <OWL_ONPROPERTY> ">" | ElementList() "/>") +// } + +// void OwlSomeValuesFrom () #OwlSomeValuesFrom : {} +// { +// <OWL_SOMEVALUESFROM> AttributeList() +// (">" ElementList() "</" <OWL_SOMEVALUESFROM> ">" | ElementList() "/>") +// } + +// void OwlRestriction () #OwlRestriction : {} +// { +// <OWL_RESTRICTION> AttributeList() +// (">" ElementList() "</" <OWL_RESTRICTION> ">" | ElementList() "/>") +// } + +// void OwlUnionOf () #OwlUnionOf : {} +// { +// <OWL_UNIONOF> AttributeList() +// (">" ElementList() "</" <OWL_UNIONOF> ">" | ElementList() "/>") +// } + +// void RdfElement() : {} +// { +// RdfType() +// | RdfFirst() +// | RdfRest() +// | RdfsComment() +// | RdfsDomain() +// | RdfsRange() +// | RdfsSubClassOf() +// | RdfsSubPropertyOf() +// } + +// void RdfType() #RdfType : {} +// { +// <RDF_TYPE> AttributeList() +// (">" ElementList() "</" <RDF_TYPE> ">" | ElementList() "/>") +// } + +// void RdfFirst() #RdfFirst : {} +// { +// <RDF_FIRST> AttributeList() +// (">" ElementList() "</" <RDF_FIRST> ">" | ElementList() "/>") +// } + +// void RdfRest() #RdfRest : {} +// { +// <RDF_REST> AttributeList() +// (">" ElementList() "</" <RDF_REST> ">" | ElementList() "/>") +// } + +// void RdfsComment() #RdfsComment : {} +// { +// <RDFS_COMMENT> AttributeList() +// (">" ElementList() "</" <RDFS_COMMENT> ">" | ElementList() "/>") +// } + +// void RdfsDomain() #RdfsDomain : {} +// { +// <RDFS_DOMAIN> AttributeList() +// (">" ElementList() "</" <RDFS_DOMAIN> ">" | ElementList() "/>") +// } + +// void RdfsRange() #RdfsRange : {} +// { +// <RDFS_RANGE> AttributeList() +// (">" ElementList() "</" <RDFS_RANGE> ">" | ElementList() "/>") +// } + +// void RdfsSubClassOf() #RdfsSubClassOf : {} +// { +// <RDFS_SUBCLASSOF> AttributeList() +// (">" ElementList() "</" <RDFS_SUBCLASSOF> ">" | ElementList() "/>") +// } + +// void RdfsSubPropertyOf() #RdfsSubPropertyOf : {} +// { +// <RDFS_SUBPROPERTYOF> AttributeList() +// (">" ElementList() "</" <RDFS_SUBPROPERTYOF> ">" | ElementList() "/>") +// } + +// void AttributeList() #List : {} +// { +// (Attribute())* +// } + +void Attribute() : {} +{ +// Version() + RdfAttribute() +// | XmlAttribute() +// | XmlnsAttribute() +} + +void Version() #Version : {} +{ + <VERSION> <ASSIGN> Value() +} + +void RdfAttribute() : {} +{ +// RdfAbout() +// | RdfDatatype() + RdfId() +// | RdfResource() +// | RdfParseType() +} + +void RdfAbout() #RdfAbout : {} +{ + <RDF_ABOUT> <ASSIGN> Value() +} + +void RdfDatatype() #RdfDatatype : {} +{ + <RDF_DATATYPE> <ASSIGN> Value() +} + +void RdfId() #RdfId : {} +{ + <RDF_ID> <ASSIGN> Value() +} + +void RdfParseType() #RdfParseType : {} +{ + <RDF_PARSETYPE> <ASSIGN> Value() +} + +void RdfResource() #RdfResource : {} +{ + <RDF_RESOURCE> <ASSIGN> Value() +} + +void XmlAttribute() : {} +{ + XmlBase() +} + +void XmlBase() #XmlBase : {} +{ + <XML_BASE> <ASSIGN> Value() +} + +void XmlnsAttribute() : {} +{ + Xmlns() + | XmlnsDaml() + | XmlnsDc() + | XmlnsOwl() + | XmlnsP1() + | XmlnsProtege() + | XmlnsRdf() + | XmlnsRdfs() + | XmlnsXsd() +} + +void Xmlns() #Xmlns : {} +{ + <XMLNS> <ASSIGN> Value() +} + +void XmlnsDaml() #XmlnsDaml : {} +{ + <XMLNS_DAML> <ASSIGN> Value() +} + +void XmlnsDc() #XmlnsDc : {} +{ + <XMLNS_DC> <ASSIGN> Value() +} + +void XmlnsP1() #XmlnsP1 : {} +{ + <XMLNS_P1> <ASSIGN> Value() +} + +void XmlnsProtege() #XmlnsProtege : {} +{ + <XMLNS_PROTEGE> <ASSIGN> Value() +} + +void XmlnsRdf() #XmlnsRdf : {} +{ + <XMLNS_RDF> <ASSIGN> Value() +} + +void XmlnsXsd() #XmlnsXsd : {} +{ + <XMLNS_XSD> <ASSIGN> Value() +} + +void XmlnsRdfs() #XmlnsRdfs : {} +{ + <XMLNS_RDFS> <ASSIGN> Value() +} + +void XmlnsOwl() #XmlnsOwl : {} +{ + <XMLNS_OWL> <ASSIGN> Value() +} + +void Value() #Value : { Token t; } +{ + t = <STRING_LITERAL> + {jjtThis.setSTRING_LITERAL(t.image);} +} diff --git a/siaras/SiarasPrettyPrinter.java b/siaras/SiarasPrettyPrinter.java new file mode 100644 index 0000000000000000000000000000000000000000..1e612cf83facf59c5c84cd3d762bb78fb6303624 --- /dev/null +++ b/siaras/SiarasPrettyPrinter.java @@ -0,0 +1,39 @@ +// package programs; + +import AST.Start; +import java.io.File; +import java.io.PrintStream; + +public class SiarasPrettyPrinter extends Parser { + public static void main(String args[]) { + Start ast = parse(args); + + // Dump the AST +// ast.dumpTree(" ", System.out); + + +// File siarasDir = new File("siaras"); +// if (!siarasDir.isDirectory()) { +// siarasDir.mkdir(); +// } + +// String fileName = null; +// try { +// // Generate JastAdd abstract grammar +// fileName = "siaras/Siaras.ast"; +// PrintStream pStream = new PrintStream(new File(fileName)); +// ast.genAbsGrammar(pStream); +// // Generate JavaCC configuration +// // fileName = "siaras/Siaras.jjt"; +// // pStream = new PrintStream(new File(fileName)); +// // ast.genJavaCC(pStream); +// // Generate Parser.java +// fileName = "siaras/Parser.java"; +// pStream = new PrintStream(new File(fileName)); +// ast.genParser(pStream); +// } catch (java.io.FileNotFoundException e) { +// System.out.println("Could not create file: "+fileName); +// e.printStackTrace(); +// } + } +} diff --git a/testontologies/ontologyV07_instances.owl b/testontologies/ontologyV07_instances.owl new file mode 100644 index 0000000000000000000000000000000000000000..b5532078e1413b15c5bd4f6dc1267327ad9c24a3 --- /dev/null +++ b/testontologies/ontologyV07_instances.owl @@ -0,0 +1,89 @@ +<VacuumGripper rdf:ID="Schmalz_FSGA_20_SI-55_M5-AG"> + <hasSkill> + <AdjustVacuumToGrip rdf:ID="AdjustVacuumToGrip_16"> + <isSkillOf> + <VacuumGripper rdf:ID="Schmalz_FSGPL_200_NBR-55_G1-2-IG"> + <hasProperty> + <DiameterOfGripper rdf:ID="DiameterOfGripper_200"> + <value rdf:datatype="http://www.w3.org/2001/XMLSchema#float" + >0.0</value> + <isPropertyOf rdf:resource="#Schmalz_FSGPL_200_NBR-55_G1-2-IG"/> + </DiameterOfGripper> + </hasProperty> + <hasSkill rdf:resource="#AdjustVacuumToGrip_16"/> + <hasProperty> + <Material rdf:ID="Material_Perbunan"> + <isPropertyOf rdf:resource="#Schmalz_FSGPL_200_NBR-55_G1-2-IG"/> + <value rdf:datatype="http://www.w3.org/2001/XMLSchema#string" + >Perbunan NBR 55+-5</value> + </Material> + </hasProperty> + <hasProperty> + <MaximumForce rdf:ID="MaximumForce_850"> + <value rdf:datatype="http://www.w3.org/2001/XMLSchema#float" + >0.0</value> + <isPropertyOf rdf:resource="#Schmalz_FSGPL_200_NBR-55_G1-2-IG"/> + </MaximumForce> + </hasProperty> + <hasProperty> + <Worm rdf:ID="Worm_22"> + <isPropertyOf rdf:resource="#Schmalz_FSGPL_200_NBR-55_G1-2-IG"/> + <value rdf:datatype="http://www.w3.org/2001/XMLSchema#string" + >Inside</value> + </Worm> + </hasProperty> + <hasProperty> + <WormDiameter rdf:ID="WormDiameter_G1-2"> + <isPropertyOf rdf:resource="#Schmalz_FSGPL_200_NBR-55_G1-2-IG"/> + <value rdf:datatype="http://www.w3.org/2001/XMLSchema#string" + >G1/2</value> + </WormDiameter> + </hasProperty> + <hasSkill> + <AdjustVacuumToRelease rdf:ID="AdjustVacuumToRelease_1"> + <isSkillOf rdf:resource="#Schmalz_FSGA_20_SI-55_M5-AG"/> + <isSkillOf rdf:resource="#Schmalz_FSGPL_200_NBR-55_G1-2-IG"/> + </AdjustVacuumToRelease> + </hasSkill> + </VacuumGripper> + </isSkillOf> + <isSkillOf rdf:resource="#Schmalz_FSGA_20_SI-55_M5-AG"/> + </AdjustVacuumToGrip> + </hasSkill> + <hasProperty> + <WormDiameter rdf:ID="WormDiameter_M5"> + <value rdf:datatype="http://www.w3.org/2001/XMLSchema#string" + >M5</value> + <isPropertyOf rdf:resource="#Schmalz_FSGA_20_SI-55_M5-AG"/> + </WormDiameter> + </hasProperty> + <hasProperty> + <DiameterOfGripper rdf:ID="DiameterOfGripper_20"> + <value rdf:datatype="http://www.w3.org/2001/XMLSchema#float" + >0.0</value> + <isPropertyOf rdf:resource="#Schmalz_FSGA_20_SI-55_M5-AG"/> + </DiameterOfGripper> + </hasProperty> + <hasProperty> + <Material rdf:ID="Material_Silikon"> + <isPropertyOf rdf:resource="#Schmalz_FSGA_20_SI-55_M5-AG"/> + <value rdf:datatype="http://www.w3.org/2001/XMLSchema#string" + >Silikon SI 55+-5</value> + </Material> + </hasProperty> + <hasProperty> + <Worm rdf:ID="Worm_13"> + <value rdf:datatype="http://www.w3.org/2001/XMLSchema#string" + >Outside</value> + <isPropertyOf rdf:resource="#Schmalz_FSGA_20_SI-55_M5-AG"/> + </Worm> + </hasProperty> + <hasSkill rdf:resource="#AdjustVacuumToRelease_1"/> + <hasProperty> + <MaximumForce rdf:ID="MaximumForce_4.7"> + <isPropertyOf rdf:resource="#Schmalz_FSGA_20_SI-55_M5-AG"/> + <value rdf:datatype="http://www.w3.org/2001/XMLSchema#float" + >0.0</value> + </MaximumForce> + </hasProperty> + </VacuumGripper>