
Grammar extracted by Vadim Zaytsev, see the Grammar Zoo entry for details: dsl/business/birt/classic/extracted
Source used for this grammar: Hugo Brunelière, ClassicModels BIRT Sample database, ClassicModels.ecore, 2007/02/16
AddressInfo, Date, ClassicModels, ProductLine, Product, Office, Employee, Customer, Payment, Order, OrderDetail, String, Integer), 0 root (—), 1 top (AddressInfo), 1 bottom (Double 5).[year], [month], [day], [offices], [productLines], [customers], [productLineOwner], [products], [name] 3, [textDescription], [htmlDescription], [productLine], [code] 2, [scale], [vendor], [description], [quantityInStock], [buyPrice], [MSRP], [officeOwner], [employees], [territory], [office], [number] 3, [employeeCustomers], [lastName], [firstName], [extension], [email], [reportsTo], [jobTitle], [customerOwner], [orders], [payments], [salesRepEmployee], [contactLastName], [contactFirstName], [creditLimit], [customer] 2, [checkNumber], [date] 2, [amount], [orderDetails], [requiredDate], [shippedDate], [status], [comments], [order], [product], [quantityOrdered], [priceEach].AddressInfo ::= Office
AddressInfo ::= Customer
Date ::= [year]::Integer [month]::Integer [day]::Integer
ClassicModels ::= [offices]::Office [productLines]::ProductLine [customers]::Customer
ProductLine ::=
[productLineOwner]::ClassicModels [products]::Product [name]::String [textDescription]::String [htmlDescription]::StringProduct ::= [productLine]::ProductLine [code]::String [name]::String [scale]::String [vendor]::String [description]::String [quantityInStock]::Integer [buyPrice]::Double [MSRP]::Double
Office ::=
[officeOwner]::ClassicModels [code]::String [employees]::Employee [territory]::StringEmployee ::=
[office]::Office [number]::Integer [employeeCustomers]::Customer [lastName]::String [firstName]::String [extension]::String [email]::String [reportsTo]::Employee [jobTitle]::StringCustomer ::= [customerOwner]::ClassicModels [number]::Integer [orders]::Order [payments]::Payment [salesRepEmployee]::Employee [name]::String [contactLastName]::String [contactFirstName]::String [creditLimit]::Double
Payment ::= [customer]::Customer [checkNumber]::String [date]::Date [amount]::Double
Order ::=
[customer]::Customer [orderDetails]::OrderDetail [number]::Integer [date]::Date [requiredDate]::Date [shippedDate]::Date [status]::String [comments]::StringOrderDetail ::= [order]::Order [product]::Product [quantityOrdered]::Integer [priceEach]::Double
String ::= string
Integer ::= integer