next up previous
Next: Extending NEOCLASSIC Up: NeoClassic User's GuideVersion 1.0 Previous: Explanation

The CLASSIC Grammar

  The following defines the syntax for typing in a CLASSIC concept or individual description:

Description ::= ThingDescription |
		ClassicDescription |
		HostDescription |
		IncoherentDescription 
 
ThingDescription ::= Thing |
		 (and) 
 
ClassicDescription ::= ClassicThing |
		ClassicConcept |
		(andClassicDescription+) |
		(oneOf ClassicIndividual+) |
		(atLeast PositiveInteger Role) |
		(atMost NonNegativeInteger Role) |
		(fills Role ClassicIndividual+)
		(fills Role HostIndividual+) |
		(all Role Description) |
		(testC ClassicTestGenerate Parameter*) 
 
HostDescription ::= HostThing |
		 Number | Integer | Float | String |
		HostConcept |
		(and HostDescription+) |
		(oneOf HostIndividual+) |
		(minimum Number) |
		(maximum Number) |
		(testH HostTestGenerate Parameter*) 
 
IncoherentDescription ::= (one-of) 
 
Role 		 ::= Symbol 
ClassicConcept 		 ::= Symbol 
HostConcept 		 ::= Symbol 
Rule 		 ::= Symbol 
ClassicIndividual 		 ::= Symbol 
HostIndividual 		 ::= "string" | int | float 
ClassicTestDetail 		 ::= Symbol 
HostTestDetail 		 ::= Symbol 
Number 		 ::= int | real 
Parameter 		 ::= NeoObject



Peter F. Patel-Schneider
7/15/1998