Skip to content
GitLab
Explore
Sign in
Register
Primary navigation
Search or go to…
Project
X
XMLSchemaCompiler
Manage
Activity
Members
Labels
Plan
Issues
Issue boards
Milestones
Wiki
Code
Merge requests
Repository
Branches
Commits
Tags
Repository graph
Compare revisions
Deploy
Releases
Model registry
Monitor
Incidents
Analyze
Value stream analytics
Contributor analytics
Repository analytics
Model experiments
Help
Help
Support
GitLab documentation
Compare GitLab plans
GitLab community forum
Contribute to GitLab
Provide feedback
Keyboard shortcuts
?
Snippets
Groups
Projects
Show more breadcrumbs
Anders Nilsson
XMLSchemaCompiler
Commits
60f52e8d
Commit
60f52e8d
authored
Mar 8, 2007
by
Anders Nilsson
Browse files
Options
Downloads
Patches
Plain Diff
Synching. Working on x3d parser generation
parent
f33d8153
Branches
Branches containing commit
No related tags found
No related merge requests found
Changes
4
Show whitespace changes
Inline
Side-by-side
Showing
4 changed files
CompilerGeneration.jrag
+72
-19
72 additions, 19 deletions
CompilerGeneration.jrag
JavaCCChunks.jrag
+3
-4
3 additions, 4 deletions
JavaCCChunks.jrag
x3d/build.xml
+113
-0
113 additions, 0 deletions
x3d/build.xml
xmlschema.jjt
+1
-1
1 addition, 1 deletion
xmlschema.jjt
with
189 additions
and
24 deletions
CompilerGeneration.jrag
+
72
−
19
View file @
60f52e8d
...
@@ -18,7 +18,9 @@ aspect AbsGrammarGeneration {
...
@@ -18,7 +18,9 @@ aspect AbsGrammarGeneration {
public void Start.genAbsGrammar(PrintStream pStream) {
public void Start.genAbsGrammar(PrintStream pStream) {
pStream.println("// Predefined types");
pStream.println("// Predefined types");
pStream.println("Start ::= Element*;");
pStream.println("Start ::= Specification;");
pStream.println("Specification ::= XmlHeader Element*;");
pStream.println("XmlHeader ::=;");
pStream.println("abstract Thing : ComplexElement ::=;");
pStream.println("abstract Thing : ComplexElement ::=;");
pStream.println("abstract Element;");
pStream.println("abstract Element;");
pStream.println("ComplexElement : Element ::= OwlIdentifier Attribute* Element*;");
pStream.println("ComplexElement : Element ::= OwlIdentifier Attribute* Element*;");
...
@@ -27,24 +29,24 @@ aspect AbsGrammarGeneration {
...
@@ -27,24 +29,24 @@ aspect AbsGrammarGeneration {
pStream.println("StringElement : SimpleElement ::= <IDENTIFIER>;");
pStream.println("StringElement : SimpleElement ::= <IDENTIFIER>;");
pStream.println("IntElement : SimpleElement ::= <INTEGER_LITERAL>;");
pStream.println("IntElement : SimpleElement ::= <INTEGER_LITERAL>;");
pStream.println("FloatElement : SimpleElement ::= <FLOAT_LITERAL>;");
pStream.println("FloatElement : SimpleElement ::= <FLOAT_LITERAL>;");
pStream.println("ClassUse : Thing ::= /decl:Thing/;");
//
pStream.println("ClassUse : Thing ::= /decl:Thing/;");
pStream.println("Attribute ::= Value;");
pStream.println("Attribute ::= Value;");
pStream.println("RdfDatatype : Attribute ::= ;");
//
pStream.println("RdfDatatype : Attribute ::= ;");
pStream.println("RdfId : Attribute ::= ;");
//
pStream.println("RdfId : Attribute ::= ;");
pStream.println("Xmlns : Attribute ::= ;");
//
pStream.println("Xmlns : Attribute ::= ;");
pStream.println("XmlnsProtege : Attribute ::= ;");
//
pStream.println("XmlnsProtege : Attribute ::= ;");
pStream.println("XmlnsRdf : Attribute ::= ;");
//
pStream.println("XmlnsRdf : Attribute ::= ;");
pStream.println("XmlnsXsd : Attribute ::= ;");
//
pStream.println("XmlnsXsd : Attribute ::= ;");
pStream.println("XmlnsRdfs : Attribute ::= ;");
//
pStream.println("XmlnsRdfs : Attribute ::= ;");
pStream.println("XmlnsOwl : Attribute ::= ;");
//
pStream.println("XmlnsOwl : Attribute ::= ;");
pStream.println("XmlnsDaml : Attribute ::= ;");
//
pStream.println("XmlnsDaml : Attribute ::= ;");
pStream.println("XmlnsP1 : Attribute ::= ;");
//
pStream.println("XmlnsP1 : Attribute ::= ;");
pStream.println("XmlnsDc : Attribute ::= ;");
//
pStream.println("XmlnsDc : Attribute ::= ;");
pStream.println("XmlBase : Attribute ::= ;");
//
pStream.println("XmlBase : Attribute ::= ;");
pStream.println("RdfResource : Attribute ::= ;");
//
pStream.println("RdfResource : Attribute ::= ;");
pStream.println("RdfAbout : Attribute ::= ;");
//
pStream.println("RdfAbout : Attribute ::= ;");
pStream.println("RdfParseType : Attribute ::= ;");
//
pStream.println("RdfParseType : Attribute ::= ;");
pStream.println("Version : Attribute ::= ;");
//
pStream.println("Version : Attribute ::= ;");
pStream.println("Value ::= <STRING_LITERAL>;");
pStream.println("Value ::= <STRING_LITERAL>;");
pStream.println("OwlIdentifier ::= <IDENTIFIER>;");
pStream.println("OwlIdentifier ::= <IDENTIFIER>;");
pStream.println("AttrValue ::= <STRING_LITERAL>;");
pStream.println("AttrValue ::= <STRING_LITERAL>;");
...
@@ -64,8 +66,59 @@ aspect GenJavaCC {
...
@@ -64,8 +66,59 @@ aspect GenJavaCC {
}
}
public void Start.genJavaCC(PrintStream pStream) {
public void Start.genJavaCC(PrintStream pStream) {
genJavaCCHeader(pStream);
genJavaCCLiterals(pStream);
genJavaCCIdentifiers(pStream);
genJavaCCSeparators(pStream);
genJavaCCOperators(pStream);
pStream.println("Start Start() #Start : {}");
pStream.println("{");
pStream.println(" Specification()");
pStream.println(" { return jjThis; }");
pStream.println("}");
pStream.println();
pStream.println("void Specification() #Specification : {}");
pStream.println("{");
pStream.println(" XmlHeader()");
pStream.println(" ElementList()");
pStream.println("}");
pStream.println();
pStream.println("void XmlHeader() #XmlHeader : {}");
pStream.println("{");
pStream.println(" \"<?\" <XML> AttributeList() \"?>\"");
pStream.println("}");
pStream.println();
pStream.println("void ElementList() #List : {}");
pStream.println("{");
pStream.println(" (Element())*");
pStream.println("}");
pStream.println();
pStream.println("void AttributeList() #List : {}");
pStream.println("{");
pStream.println(" (Attribute())*");
pStream.println("}");
pStream.println();
pStream.println("void Element() : {}");
pStream.println("{");
pStream.println(" ");
pStream.println("}");
pStream.println();
pStream.println("void Attribute() : {}");
pStream.println("{");
pStream.println(" ");
pStream.println("}");
}
void XsElement.genJavaCC(PrintStream pStream) {
String name = getName();
pStream.println("void "+name+"() #"+name+" : {}");
pStream.println("{");
pStream.println(" \"<\" <"+name.toUpperCase()+"> AttributeList() \">\"");
pStream.println(" ElementList()");
pStream.println(" \"</\" <"+name.toUpperCase()+"> \">\"");
pStream.println("}");
}
}
}
}
// aspect GenAspects {
// aspect GenAspects {
...
...
This diff is collapsed.
Click to expand it.
JavaCCChunks.jrag
+
3
−
4
View file @
60f52e8d
...
@@ -18,11 +18,11 @@ aspect JavaCCChunks {
...
@@ -18,11 +18,11 @@ aspect JavaCCChunks {
pStream.println(" STATIC = false;");
pStream.println(" STATIC = false;");
pStream.println("} ");
pStream.println("} ");
pStream.println();
pStream.println();
pStream.println("PARSER_BEGIN(
Siaras
Parser)");
pStream.println("PARSER_BEGIN(
Xml
Parser)");
pStream.println(" package AST;");
pStream.println(" package AST;");
pStream.println(" public class
Siaras
Parser {");
pStream.println(" public class
Xml
Parser {");
pStream.println("}");
pStream.println("}");
pStream.println("PARSER_END(
Siaras
Parser)");
pStream.println("PARSER_END(
Xml
Parser)");
pStream.println();
pStream.println();
pStream.println("//----------------------------------------------//");
pStream.println("//----------------------------------------------//");
pStream.println("// LEXICAL TOKENS //");
pStream.println("// LEXICAL TOKENS //");
...
@@ -43,7 +43,6 @@ aspect JavaCCChunks {
...
@@ -43,7 +43,6 @@ aspect JavaCCChunks {
pStream.println("SPECIAL_TOKEN : /* COMMENTS */ ");
pStream.println("SPECIAL_TOKEN : /* COMMENTS */ ");
pStream.println("{");
pStream.println("{");
pStream.println(" < \"<!--\" ( ~[\"-\"] | ( \"-\" ~[\"-\"] ) )* \"-->\">");
pStream.println(" < \"<!--\" ( ~[\"-\"] | ( \"-\" ~[\"-\"] ) )* \"-->\">");
pStream.println(" | < \"<rdfs:comment\" ( ~[\"<\"] | ( \"<\" ~[\"/\"] ) )* \"</rdfs:comment>\" >");
pStream.println("}// COMMENTS");
pStream.println("}// COMMENTS");
pStream.println();
pStream.println();
}
}
...
...
This diff is collapsed.
Click to expand it.
x3d/build.xml
0 → 100644
+
113
−
0
View file @
60f52e8d
<!--
Targets for working from terminal window:
build (default) - generates java files and compiles them
clean - removes all generated files and class files
Targets for working from Eclipse:
gen - generates java files
genClean - removes all generated files and their class files
-->
<project
name=
"OntologyCompiler"
default=
"build"
basedir=
"."
>
<!-- "package" is the directory where generated files will be stored -->
<property
name=
"package"
value=
"AST"
/>
<!-- "tools" is the directory where generators and libraries are located. -->
<property
name=
"tools"
value=
"../tools"
/>
<property
name=
"javacc.home"
value=
"../tools/javacc-4.0"
/>
<property
name=
"parser.name"
value=
"Parser"
/>
<!-- "jflex" is an ant task class for the scanner generator in JFlex.jar -->
<!-- <taskdef name="jflex" classname="JFlex.anttask.JFlexTask" classpath="tools/JFlex.jar"/> -->
<!-- "beaver" is an ant task class for the parser generator in beaver.jar -->
<!-- <taskdef name="beaver" classname="beaver.comp.run.AntTask" classpath="tools/beaver.jar"/> -->
<!-- "jastadd" is an ant task class in jastadd2.jar -->
<taskdef
name=
"jastadd"
classname=
"jastadd.JastAddTask"
classpath=
"../tools/jastadd2.jar"
/>
<!-- compile sources -->
<target
name=
"build"
depends=
"gen"
>
<javac
compiler=
"jikes"
debug=
"true"
nowarn=
"true"
srcdir=
"."
includes=
"**/*.java"
excludes=
"tools/** siaras/**"
classpath=
".:${tools}/beaver-rt.jar:${tools}/junit.jar"
/>
</target>
<!-- generate compiler source files -->
<target
name=
"gen"
description=
"Generate compiler source files"
>
<!-- create AST node types and weave aspect modules -->
<echo
message =
"Running JastAdd"
/>
<!-- <jastadd package="${package}" rewrite="true" beaver="true" novisitcheck="true"> -->
<jastadd
package=
"${package}"
grammar=
"${parser.name}"
rewrite=
"true"
jjtree=
"true"
>
<fileset
dir=
"."
>
<include
name=
"*.ast"
/>
<include
name=
"*.jrag"
/>
<include
name=
"*.jadd"
/>
</fileset>
</jastadd>
<jjtree
target=
"x3d.jjt"
outputdirectory=
"${package}"
javacchome=
"${javacc.home}"
buildnodefiles=
"true"
static=
"false"
multi=
"true"
visitor=
"true"
nodedefaultvoid=
"true"
nodeprefix=
'""'
nodepackage=
"${package}"
/>
<javacc
target=
"${package}/x3d.jj"
outputdirectory=
"${package}"
javacchome=
"${javacc.home}"
buildparser=
"true"
buildtokenmanager=
"true"
static=
"false"
/>
<!-- generate the scanner -->
<!-- <echo message = "Running jflex"/> -->
<!-- <jflex file="parser/java14.flex" outdir="parser" nobak="yes"/> -->
<!-- generate the scanner -->
<!-- <jflex file="parser/unicode.flex" outdir="parser" nobak="yes"/> -->
<!-- generate the parser phase 1, create a full .lalr specification from fragments-->
<!-- <echo message = "Running parser phase 1"/> -->
<!-- <concat destfile="parser/JavaParser.all" binary="true"> -->
<!-- <fileset dir="."> -->
<!-- <include name="parser/java14.parser"/> -->
<!-- </fileset> -->
<!-- </concat> -->
<!-- generate the parser phase 2, translating .lalr to .beaver -->
<!-- <java classpath="${tools}/proj.jar:${tools}/beaver-rt.jar" classname="Main"> -->
<!-- <arg line="parser/JavaParser.all parser/JavaParser.beaver"/> -->
<!-- </java> -->
<!-- generate the parser phase 3, translating .beaver to .java -->
<!-- <beaver file="parser/JavaParser.beaver" terminalNames="yes" compress="no" useSwitch="yes"/> -->
</target>
<target
name=
"test"
depends=
"build"
>
<java
classname=
"GenCompiler"
classpath=
"."
>
<arg
value=
"GripperOntology_experimental3.owl"
/>
</java>
</target>
<!-- remove generated source files and .class files -->
<target
name=
"clean"
depends=
"cleanGen"
>
<!-- delete all .class files recursively -->
<delete>
<fileset
dir=
"."
includes=
"**/*.class"
excludes=
"beaver/*.class"
/>
</delete>
</target>
<target
name=
"jar"
depends=
"build"
>
<jar
destfile=
"X3DCompiler.jar"
basedir=
"."
includes=
"**/*.class"
excludes=
"test/**"
>
<manifest>
<attribute
name=
"Main-Class"
value=
"GenOntology"
/>
</manifest>
</jar>
</target>
<!-- remove generated source files and their .class files -->
<target
name=
"cleanGen"
>
<delete
dir=
"${package}"
/>
</target>
</project>
This diff is collapsed.
Click to expand it.
xmlschema.jjt
+
1
−
1
View file @
60f52e8d
...
@@ -299,7 +299,7 @@ SPECIAL_TOKEN : /* COMMENTS */
...
@@ -299,7 +299,7 @@ SPECIAL_TOKEN : /* COMMENTS */
//--------------------------------------------------------------------//
//--------------------------------------------------------------------//
// THE
OWL LANGUAGE
GRAMMAR //
// THE
XMLSCHEMA
GRAMMAR
//
//--------------------------------------------------------------------//
//--------------------------------------------------------------------//
Start Start() #Start : {}
Start Start() #Start : {}
...
...
This diff is collapsed.
Click to expand it.
Preview
0%
Loading
Try again
or
attach a new file
.
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Save comment
Cancel
Please
register
or
sign in
to comment