BNF for MappingMasterParser.jj

TOKENS

/* White space */
<DEFAULT> SKIP : {
" "
| "\t"
| "\n"
| "\r"
| "\f"
}

   
/* Comments */
<DEFAULT> MORE : {
"//" : IN_SINGLE_LINE_COMMENT
| <"/**" ~["/"]> : IN_FORMAL_COMMENT
| "/*" : IN_MULTI_LINE_COMMENT
}

   
<IN_SINGLE_LINE_COMMENT> SPECIAL : {
<SINGLE_LINE_COMMENT: "\n" | "\r" | "\r\n"> : DEFAULT
}

   
<IN_FORMAL_COMMENT> SPECIAL : {
<FORMAL_COMMENT: "*/"> : DEFAULT
}

   
<IN_MULTI_LINE_COMMENT> SPECIAL : {
<MULTI_LINE_COMMENT: "*/"> : DEFAULT
}

   
<IN_SINGLE_LINE_COMMENT,IN_FORMAL_COMMENT,IN_MULTI_LINE_COMMENT> MORE : {
<~[]>
}

   
/* Tokens */
<DEFAULT> TOKEN : {
<CLASS: "Class:" | "class:">
}

   
<DEFAULT> TOKEN : {
<INDIVIDUAL: "Individual:" | "individual:">
}

   
<DEFAULT> TOKEN : {
<EQUIVALENT_TO: "EquivalentTo:" | "equivalentTo:">
}

   
<DEFAULT> TOKEN : {
<SUBCLASS_OF: "SubClassOf:" | "subClassOf:">
}

   
<DEFAULT> TOKEN : {
<FACTS: "Facts:" | "facts:">
}

   
/* Class expression tokens */
<DEFAULT> TOKEN : {
<SOME: "some" | "SOME">
}

   
<DEFAULT> TOKEN : {
<ONLY: "only" | "ONLY">
}

   
<DEFAULT> TOKEN : {
<HAS: "has" | "HAS">
}

   
<DEFAULT> TOKEN : {
<MIN: "min" | "MIN">
}

   
<DEFAULT> TOKEN : {
<MAX: "max" | "MAX">
}

   
<DEFAULT> TOKEN : {
<EXACTLY: "exactly" | "EXACTLY">
}

   
<DEFAULT> TOKEN : {
<AND: "and" | "AND">
}

   
<DEFAULT> TOKEN : {
<OR: "or" | "OR">
}

   
<DEFAULT> TOKEN : {
<NOT: "not" | "NOT">
}

   
<DEFAULT> TOKEN : {
<TRUE: "true" | "TRUE">
}

   
<DEFAULT> TOKEN : {
<FALSE: "false" | "FALSE">
}

   
<DEFAULT> TOKEN : {
<XSD_DATETIME: "xsd:dateTime">
}

   
<DEFAULT> TOKEN : {
<XSD_LONG: "xsd:long">
}

   
<DEFAULT> TOKEN : {
<XSD_STRING: "xsd:string">
}

   
<DEFAULT> TOKEN : {
<XSD_INT: "xsd:int">
}

   
<DEFAULT> TOKEN : {
<XSD_SHORT: "xsd:short">
}

   
<DEFAULT> TOKEN : {
<XSD_BOOLEAN: "xsd:boolean">
}

   
<DEFAULT> TOKEN : {
<XSD_DATE: "xsd:date">
}

   
<DEFAULT> TOKEN : {
<XSD_DOUBLE: "xsd:double">
}

   
<DEFAULT> TOKEN : {
<XSD_FLOAT: "xsd:float">
}

   
<DEFAULT> TOKEN : {
<XSD_TIME: "xsd:time">
}

   
<DEFAULT> TOKEN : {
<XSD_DURATION: "xsd:duration">
}

   
<DEFAULT> TOKEN : {
<RDF_XMLLITERAL: "rdf:XMLLiteral">
}

   
/*
TOKEN: {  }
TOKEN: {  }
TOKEN: {  }
TOKEN: {  }
TOKEN: {  }
TOKEN: {  }
TOKEN: {  }
TOKEN: {  }
TOKEN: {  }
TOKEN: {  }
TOKEN: {  }
TOKEN: {  }
TOKEN: {  }
TOKEN: {  }
TOKEN: {  }
TOKEN: {  }
TOKEN: {  }
TOKEN: {  }
TOKEN: {  }
TOKEN: {  }
TOKEN: {  }
TOKEN: {  }
TOKEN: {  }
TOKEN: {  }
TOKEN: {  }
TOKEN: {  }
TOKEN: {  }
TOKEN: {  }
TOKEN: {  }
TOKEN: {  }
*/

/* MappingMaster tokens */
<DEFAULT> TOKEN : {
<MM_DEFAULT_VALUE_ENCODING: "mm:DefaultValueEncoding">
}

   
<DEFAULT> TOKEN : {
<MM_DEFAULT_ENTITY_TYPE: "mm:DefaultEntityType">
}

   
<DEFAULT> TOKEN : {
<MM_DEFAULT_PROPERTY_TYPE: "mm:DefaultPropertyType">
}

   
<DEFAULT> TOKEN : {
<MM_DEFAULT_PROPERTY_VALUE_TYPE: "mm:DefaultPropertyValueType">
}

   
<DEFAULT> TOKEN : {
<MM_DEFAULT_DATA_PROPERTY_VALUE_TYPE: "mm:DefaultDataPropertyValueType">
}

   
<DEFAULT> TOKEN : {
<MM_IGNORE_VALUE: "mm:IgnoreValue">
}

   
<DEFAULT> TOKEN : {
<MM_UNTYPED: "mm:Untyped">
}

   
<DEFAULT> TOKEN : {
<CELL_WILDCARD: "*">
}

   
<DEFAULT> TOKEN : {
<RDF_ID: "rdf:ID">
}

   
<DEFAULT> TOKEN : {
<RDFS_LABEL: "rdfs:label">
}

   
<DEFAULT> TOKEN : {
<RDFS_CLASS: "rdfs:class">
}

   
<DEFAULT> TOKEN : {
<RDF_PROPERTY: "rdf:property">
}

   
<DEFAULT> TOKEN : {
<OWL_CLASS: "owl:Class">
}

   
<DEFAULT> TOKEN : {
<OWL_THING: "owl:Thing">
}

   
<DEFAULT> TOKEN : {
<OWL_OBJECT_PROPERTY: "owl:ObjectProperty">
}

   
<DEFAULT> TOKEN : {
<OWL_DATATYPE_PROPERTY: "owl:DatatypeProperty">
}

   
<DEFAULT> TOKEN : {
<MM_REVERSE: "mm:reverse">
}

   
<DEFAULT> TOKEN : {
<MM_TO_UPPER: "mm:toUpper">
}

   
<DEFAULT> TOKEN : {
<MM_TO_LOWER: "mm:toLower">
}

   
<DEFAULT> TOKEN : {
<MM_TRIM: "mm:trim">
}

   
<DEFAULT> TOKEN : {
<STRING_LITERAL: "\"" (~["\""])* ("\"\"" (~["\""])*)* ("\\\"")* "\"">
| <QUOTED_NAME_LITERAL: "\'" (~["\'"])* ("\'\'" (~["\'"])*)* "\'">
| <IDENTIFIER: <LETTER> (<LETTER> | <DIGIT> | "_" | "-" | "#" | "." | ":" | "/")* | "\'" (~["\'"])* "\'">
| <INTEGER_LITERAL: (["-"])? (<DIGIT>)+>
| <LONG_LITERAL: (["-"])? (<DIGIT>)+>
| <FLOAT_LITERAL: (["-"])? (<DIGIT>)+ "." (<DIGIT>)+ (<EXPONENT>)? | (["-"])? "." (<DIGIT>)+ (<EXPONENT>)? | (["-"])? (<DIGIT>)+ <EXPONENT> | (["-"])? (<DIGIT>)+ (<EXPONENT>)?>
| <#LETTER: ["a"-"z","A"-"Z"]>
| <#DIGIT: ["0"-"9"]>
| <#EXPONENT: ["e","E"] (["+","-"])? (<DIGIT>)+>
}

   

NON-TERMINALS

expression ::= ( mm_expression | owl_expression ) <EOF>
mm_expression ::= ( mm_default_value_encoding | mm_default_entity_type | mm_default_property_value_type )
owl_expression ::= ( owl_class_expression | owl_class_declaration | owl_individual_declaration )
mm_default_value_encoding ::= <MM_DEFAULT_VALUE_ENCODING> ( <MM_IGNORE_VALUE> | <RDF_ID> | <RDFS_LABEL> )
mm_default_entity_type ::= <MM_DEFAULT_ENTITY_TYPE> entity_type
mm_default_property_value_type ::= <MM_DEFAULT_PROPERTY_VALUE_TYPE> entity_type
mm_default_datatype_property_value_type ::= <MM_DEFAULT_DATA_PROPERTY_VALUE_TYPE> datatype
mm_default_property_type ::= <MM_DEFAULT_PROPERTY_TYPE> ( <OWL_DATATYPE_PROPERTY> | <OWL_OBJECT_PROPERTY> )
owl_class_expression ::= owl_union_class
owl_class_declaration ::= <CLASS> owl_named_class ( owl_equivalent_to | owl_subclass_of )*
owl_equivalent_to ::= <EQUIVALENT_TO> owl_class_expression ( "," owl_class_expression )*
owl_subclass_of ::= <SUBCLASS_OF> owl_class_expression ( "," owl_class_expression )*
owl_individual_declaration ::= <INDIVIDUAL> owl_individual ( <FACTS> fact_list )?
fact_list ::= fact ( fact )*
fact ::= owl_property owl_property_value
owl_named_class ::= ( owl_class_name | reference )
owl_property ::= ( owl_property_name | reference )
owl_individual ::= ( owl_individual_name | reference )
owl_class_name ::= name
owl_property_name ::= name
owl_individual_name ::= name
name_or_reference ::= ( name | reference )
name ::= ( identifier | quoted_name )
owl_property_value ::= ( reference | name | literal )
literal ::= ( integer_literal | float_literal | string_literal | boolean_literal )
integer_literal ::= <INTEGER_LITERAL>
float_literal ::= <FLOAT_LITERAL>
string_literal ::= string
boolean_literal ::= ( <TRUE> | <FALSE> )
owl_union_class ::= owl_intersection_class ( <OR> owl_intersection_class )*
owl_intersection_class ::= owl_class_or_restriction ( <AND> owl_class_or_restriction )*
owl_class_or_restriction ::= ( <NOT> )? ( owl_enumerated_class | "(" owl_union_class ")" | owl_restriction | owl_named_class )
owl_enumerated_class ::= "{" ( owl_individual )+ "}"
identifier ::= <IDENTIFIER>
owl_restriction ::= ( owl_max_cardinality | owl_min_cardinality | owl_cardinality | owl_has_value | owl_all_values_from | owl_some_values_from )
integer_value ::= <INTEGER_LITERAL>
cardinality_value ::= integer_value
owl_max_cardinality ::= owl_property <MAX> cardinality_value
owl_min_cardinality ::= owl_property <MIN> cardinality_value
owl_all_values_from ::= ( owl_all_values_from_datatype | owl_all_values_from_class )
owl_has_value ::= owl_property <HAS> owl_property_value
owl_cardinality ::= owl_property <EXACTLY> cardinality_value
owl_all_values_from_class ::= owl_property <ONLY> ( owl_named_class | "(" owl_class_expression ")" )
owl_all_values_from_datatype ::= owl_property <ONLY> datatype
owl_some_values_from ::= ( owl_some_values_from_datatype | owl_some_values_from_class )
owl_some_values_from_class ::= owl_property <SOME> ( owl_named_class | "(" owl_class_expression ")" )
owl_some_values_from_datatype ::= owl_property <SOME> datatype
datatype ::= ( <XSD_INT> | <XSD_STRING> | <XSD_FLOAT> | <XSD_DOUBLE> | <XSD_SHORT> | <XSD_BOOLEAN> | <XSD_TIME> | <XSD_DATE> | <XSD_DATETIME> | <XSD_DURATION> )
reference ::= "@" ( ( identifier ( <CELL_WILDCARD> )? ) | ( <CELL_WILDCARD> ( <CELL_WILDCARD> | integer_value ) ) ) ( "(" ( entity_type )? ( value_encoding )? ( defining_types )? ")" )?
entity_type ::= ( <RDFS_CLASS> | <RDF_PROPERTY> | <OWL_CLASS> | <OWL_THING> | <OWL_OBJECT_PROPERTY> | <OWL_DATATYPE_PROPERTY> | datatype )
value_encoding ::= ( <MM_IGNORE_VALUE> | ( ( <RDF_ID> | <RDFS_LABEL> ) ( "=" "(" value_specification_item ( "," value_specification_item )* ")" )? ) )
value_specification_item ::= ( string | reference | value_extraction_function | ( "[" string "]" ) )
value_extraction_function ::= ( <MM_REVERSE> | <MM_TO_UPPER> | <MM_TO_LOWER> ) "(" string_or_reference ( "," string_or_reference )* ")"
string_or_reference ::= ( reference | string_literal )
defining_types ::= ( owl_class_expression | reference )+
strings ::= string ( "," string )*
string ::= <STRING_LITERAL>
quoted_name ::= <QUOTED_NAME_LITERAL>