Skip to content
Snippets Groups Projects
Commit c5267f39 authored by Anders Nilsson's avatar Anders Nilsson
Browse files

Synching

parent 01f88151
No related branches found
No related tags found
No related merge requests found
AST
*.class
semantic.cache
<?xml version="1.0" encoding="UTF-8"?>
<!-- edited with XMLSpy v2006 sp1 U (http://www.altova.com) by Don Brutzman (Naval Postgraduate School) -->
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified" attributeFormDefault="unqualified" version="3.0.1">
<!--======================================================================-->
<!-- Public and private schema extension mechanisms -->
<xs:include schemaLocation="x3d-3.0-Web3dExtensionsPublic.xsd"/>
<xs:include schemaLocation="x3d-3.0-Web3dExtensionsPrivate.xsd"/>
<!--======================================================================-->
<xs:annotation>
<xs:appinfo>XML Schema for the Extensible 3D (X3D) Graphics Specification tagset</xs:appinfo>
</xs:annotation>
<xs:appinfo> </xs:appinfo>
<!--======================================================================-->
<!--Several pattern possibilities for urls/URNs are conceivable, perhaps a type definition or regex pattern is preferable.-->
</xs:schema>
// -*-Java-*-
// Copyright (C) 2006 Anders Nilsson <anders.nilsson@cs.lth.se>
// Copyright (C) 2007 Anders Nilsson <anders.nilsson@cs.lth.se>
//
// This file is part of OntologyCompiler.
// This file is part of XmlSchemaCompiler.
Start ::= Specification;
Specification ::= XmlHeader; // RdfDeclaration;
Specification ::= XmlHeader XsSchema;
XmlHeader ::= Attribute*;
......@@ -16,11 +16,23 @@ abstract Element;
abstract ComplexElement : Element ::= Attribute* Element*;
XsAnnotation : ComplexElement;
XsAppinfo : ComplexElement;
XsAttribute : ComplexElement;
XsAttributeGroup : ComplexElement;
XsComplexContent : ComplexElement;
XsComplexType : ComplexElement;
XsDocumentation : ComplexElement;
XsEnumeration : ComplexElement;
XsExtension : ComplexElement;
XsGroup : ComplexElement;
XsInclude : ComplexElement;
XsList : ComplexElement;
XsMinLength : ComplexElement;
XsPattern : ComplexElement;
XsRestriction : ComplexElement;
XsSimpleType : ComplexElement;
XsSchema : ComplexElement;
XsWhiteSpace : ComplexElement;
abstract SimpleElement : Element;
......@@ -28,34 +40,29 @@ StringElement : SimpleElement ::= <IDENTIFIER>;
IntElement : SimpleElement ::= <INTEGER_LITERAL>;
FloatElement : SimpleElement ::= <FLOAT_LITERAL>;
abstract Attribute ::= Value;
abstract Attribute ::= AttValue;
Abstract : Attribute;
AttributeFormDefault : Attribute;
Base : Attribute;
Default : Attribute;
ElementFormDefault : Attribute;
Encoding : Attribute;
ItemType : Attribute;
MinOccurs : Attribute;
MaxOccurs : Attribute;
Mixed : Attribute;
Name : Attribute;
Ref : Attribute;
Source : Attribute;
SchemaLocation : Attribute;
Type : Attribute;
Value : Attribute;
Version : Attribute;
XmlnsXs : Attribute;
// RdfAbout : Attribute;
// RdfDatatype : Attribute;
// RdfId : Attribute;
// RdfParseType : Attribute;
// RdfResource : Attribute;
// XmlBase : Attribute;
// Xmlns : Attribute;
// XmlnsDaml : Attribute;
// XmlnsDc : Attribute;
// XmlnsP1 : Attribute;
// XmlnsProtege : Attribute;
// XmlnsRdf : Attribute;
// XmlnsXsd : Attribute;
// XmlnsRdfs : Attribute;
// XmlnsOwl : Attribute;
// DiscardedElement : Element ::= Identifier Attribute* Element*;
Value ::= <STRING_LITERAL>;
AttValue ::= <STRING_LITERAL>;
// Identifier ::= <IDENTIFIER>;
// // Types used by rewrite rules
......
......@@ -16,7 +16,7 @@ options {
STATIC = false;
DEBUG_PARSER = true;
// DEBUG_LOOKAHEAD = true;
DEBUG_TOKEN_MANAGER = true;
// DEBUG_TOKEN_MANAGER = true;
} // options
......@@ -31,7 +31,8 @@ PARSER_END(SchemaParser)
// LEXICAL TOKENS //
//--------------------------------------------------------------------//
<DEFAULT, BOUNDS> SKIP : /* WHITE SPACE */
// <DEFAULT, BOUNDS> SKIP : /* WHITE SPACE */
SPECIAL_TOKEN : /* WHITE SPACE */
{
" "
|
......@@ -68,17 +69,39 @@ SPECIAL_TOKEN : /* COMMENTS */
{
< XS_ANNOTATION : "xs:annotation" >
| < XS_APPINFO : "xs:appinfo" >
| < XS_ATTRIBUTE : "xs:attribute" >
| < XS_ATTRIBUTEGROUP : "xs:attributeGroup" >
| < XS_COMPLEXCONTENT : "xs:complexContent" >
| < XS_COMPLEXTYPE : "xs:complexType" >
| < XS_DOCUMENTATION : "xs:documentation" >
| < XS_ENUMERATION : "xs:enumeration" >
| < XS_EXTENSION : "xs:extension" >
| < XS_GROUP : "xs:group" >
| < XS_INCLUDE : "xs:include" >
| < XS_LIST : "xs:list" >
| < XS_MINLENGTH : "xs:minLength" >
| < XS_PATTERN : "xs:pattern" >
| < XS_RESTRICTION : "xs:restriction" >
| < XS_SCHEMA : "xs:schema" >
| < XS_SIMPLETYPE : "xs:simpleType" >
| < XS_WHITESPACE : "xs:whiteSpace" >
| < ABSTRACT : "abstract" >
| < ATTRIBUTEFORMDEFAULT : "attributeFormDefault" >
| < BASE : "base" >
| < DEFAULT_ATTR : "default" >
| < ELEMENTFORMDEFAULT : "elementFormDefault" >
| < ENCODING : "encoding" >
| < FIXED : "fixed" >
| < ITEMTYPE : "itemType" >
| < MINOCCURS : "minOccurs" >
| < MAXOCCURS : "maxOccurs" >
| < MIXED : "mixed" >
| < NAME : "name" >
| < REF : "ref" >
| < SCHEMALOCATION : "schemaLocation" >
| < SOURCE : "source" >
| < TYPE : "type" >
| < VALUE : "value" >
| < VERSION : "version" >
| < XML : "xml" >
| < XMLNS_XS : "xmlns:xs" >
......@@ -130,19 +153,25 @@ SPECIAL_TOKEN : /* COMMENTS */
|
< STRING_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"]
// )
// )
// )*
// "\""
// >
}// LITERALS
<DEFAULT, BOUNDS> TOKEN : /* IDENTIFIERS */
......@@ -156,6 +185,7 @@ SPECIAL_TOKEN : /* COMMENTS */
"\u005f",
"\u0061"-"\u007a",
"\u00c0"-"\u00d6",
"\u00d7",
"\u00d8"-"\u00f6",
"\u00f8"-"\u00ff",
"\u0100"-"\u1fff",
......@@ -224,8 +254,9 @@ SPECIAL_TOKEN : /* COMMENTS */
| < MINUS : "-" >
// | < STAR : "*" >
| < SLASH : "/" >
| < BACKSLASH : "\\" >
// | < BIT_AND : "&" >
// | < BIT_OR : "|" >
| < VBAR : "|" >
// | < XOR : "^" >
// | < REM : "%" >
// | < LSHIFT : "<<" >
......@@ -288,10 +319,21 @@ void Element() : {}
{
( "<" (XsAnnotation()
| XsAppinfo()
| XsAttribute()
| XsAttributeGroup()
| XsComplexContent()
| XsComplexType()
| XsDocumentation()
| XsEnumeration()
| XsExtension()
| XsGroup()
| XsInclude()
| XsList()
| XsMinLength()
| XsPattern()
| XsRestriction()
| XsSimpleType()
| XsWhiteSpace()
))
| SimpleElement()
}
......@@ -308,18 +350,78 @@ void XsAppinfo() #XsAppinfo : {}
(">" ElementList() "</" <XS_APPINFO> ">" | ElementList() "/>")
}
void XsAttribute() #XsAttribute : {}
{
<XS_ATTRIBUTE> AttributeList()
(">" ElementList() "</" <XS_ATTRIBUTE> ">" | ElementList() "/>")
}
void XsAttributeGroup() #XsAttributeGroup : {}
{
<XS_ATTRIBUTEGROUP> AttributeList()
(">" ElementList() "</" <XS_ATTRIBUTEGROUP> ">" | ElementList() "/>")
}
void XsComplexContent() #XsComplexContent : {}
{
<XS_COMPLEXCONTENT> AttributeList()
(">" ElementList() "</" <XS_COMPLEXCONTENT> ">" | ElementList() "/>")
}
void XsComplexType() #XsComplexType : {}
{
<XS_COMPLEXTYPE> AttributeList()
(">" ElementList() "</" <XS_COMPLEXTYPE> ">" | ElementList() "/>")
}
void XsDocumentation() #XsDocumentation : {}
{
<XS_DOCUMENTATION> AttributeList()
(">" ElementList() "</" <XS_DOCUMENTATION> ">" | ElementList() "/>")
}
void XsEnumeration() #XsEnumeration : {}
{
<XS_ENUMERATION> AttributeList()
(">" ElementList() "</" <XS_ENUMERATION> ">" | ElementList() "/>")
}
void XsExtension() #XsExtension : {}
{
<XS_EXTENSION> AttributeList()
(">" ElementList() "</" <XS_EXTENSION> ">" | ElementList() "/>")
}
void XsGroup() #XsGroup : {}
{
<XS_GROUP> AttributeList()
(">" ElementList() "</" <XS_GROUP> ">" | ElementList() "/>")
}
void XsInclude() #XsInclude : {}
{
<XS_INCLUDE> AttributeList()
(">" ElementList() "</" <XS_INCLUDE> ">" | ElementList() "/>")
}
void XsList() #XsList : {}
{
<XS_LIST> AttributeList()
(">" ElementList() "</" <XS_LIST> ">" | ElementList() "/>")
}
void XsMinLength() #XsMinLength : {}
{
<XS_MINLENGTH> AttributeList()
(">" ElementList() "</" <XS_MINLENGTH> ">" | ElementList() "/>")
}
void XsPattern() #XsPattern : {}
{
<XS_PATTERN> AttributeList()
(">" ElementList() "</" <XS_PATTERN> ">" | ElementList() "/>")
}
void XsRestriction() #XsRestriction : {}
{
<XS_RESTRICTION> AttributeList()
......@@ -332,6 +434,12 @@ void XsSimpleType() #XsSimpleType : {}
(">" ElementList() "</" <XS_SIMPLETYPE> ">" | ElementList() "/>")
}
void XsWhiteSpace() #XsWhiteSpace : {}
{
<XS_WHITESPACE> AttributeList()
(">" ElementList() "</" <XS_WHITESPACE> ">" | ElementList() "/>")
}
void SimpleElement() : {}
{
IntElement()
......@@ -359,17 +467,31 @@ void StringElement() #StringElement : { Token t;String s; }
{
s = t.image;
if (getToken(1).kind != LT ) {
getData(s);
s += getData();
}
}
{jjtThis.setIDENTIFIER(t.image);}
{jjtThis.setIDENTIFIER(s);}
}
JAVACODE
void getData(String s) {
String getData() {
StringBuffer s = new StringBuffer();
// jjtThis.someData = true;
while ((getToken(1)).kind != END_TAG)
s += getNextToken().image;
while ((getToken(1)).kind != LT && (getToken(1)).kind != END_TAG) {
Token t = getNextToken();
if (t.specialToken != null) {
Token tmp_t = t.specialToken;
while (tmp_t.specialToken != null) {
tmp_t = tmp_t.specialToken;
}
while (tmp_t != null) {
s.append(tmp_t.image);
tmp_t = tmp_t.next;
}
}
s.append(t.image);
}
return s.toString();
}
void AttributeList() #List : {}
......@@ -380,58 +502,124 @@ void AttributeList() #List : {}
void Attribute() : {}
{
Version()
| Abstract()
| AttributeFormDefault()
| Base()
| Default()
| ElementFormDefault()
| Encoding()
| Fixed()
| ItemType()
| MinOccurs()
| MaxOccurs()
| Mixed()
| Name()
| Ref()
| Source()
| SchemaLocation()
| Type()
| Value()
| XmlnsXs()
}
void AttributeFormDefault() #AttributeFormDefault : {}
{
<ATTRIBUTEFORMDEFAULT> <ASSIGN> Value()
<ATTRIBUTEFORMDEFAULT> <ASSIGN> AttValue()
}
void Abstract() #Abstract : {}
{
<ABSTRACT> <ASSIGN> AttValue()
}
void Base() #Base : {}
{
<BASE> <ASSIGN> Value()
<BASE> <ASSIGN> AttValue()
}
void Default() #Default : {}
{
<DEFAULT_ATTR> <ASSIGN> AttValue()
}
void ElementFormDefault() #ElementFormDefault : {}
{
<ELEMENTFORMDEFAULT> <ASSIGN> Value()
<ELEMENTFORMDEFAULT> <ASSIGN> AttValue()
}
void Encoding() #Encoding : {}
{
<ENCODING> <ASSIGN> Value()
<ENCODING> <ASSIGN> AttValue()
}
void Fixed() #Fixed : {}
{
<FIXED> <ASSIGN> AttValue()
}
void MaxOccurs() #MaxOccurs : {}
{
<MAXOCCURS> <ASSIGN> AttValue()
}
void MinOccurs() #MinOccurs : {}
{
<MINOCCURS> <ASSIGN> AttValue()
}
void Mixed() #Mixed : {}
{
<MIXED> <ASSIGN> AttValue()
}
void Name() #Name : {}
{
<NAME> <ASSIGN> AttValue()
}
void ItemType() #ItemType : {}
{
<ITEMTYPE> <ASSIGN> AttValue()
}
void Ref() #Ref : {}
{
<REF> <ASSIGN> AttValue()
}
void Source() #Source : {}
{
<SOURCE> <ASSIGN> Value()
<SOURCE> <ASSIGN> AttValue()
}
void SchemaLocation() #SchemaLocation : {}
{
<SCHEMALOCATION> <ASSIGN> Value()
<SCHEMALOCATION> <ASSIGN> AttValue()
}
void Version() #Version : {}
{
<VERSION> <ASSIGN> Value()
<VERSION> <ASSIGN> AttValue()
}
void Type() #Type : {}
{
<TYPE> <ASSIGN> AttValue()
}
void Value() #Value : {}
{
<VALUE> <ASSIGN> AttValue()
}
void XmlnsXs() #XmlnsXs : {}
{
<XMLNS_XS> <ASSIGN> Value()
<XMLNS_XS> <ASSIGN> AttValue()
}
void Value() #Value : { Token t; }
void AttValue() #AttValue : { Token t; }
{
t = <STRING_LITERAL>
{jjtThis.setSTRING_LITERAL(t.image);}
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment