LANGUAGE "Query by Example": EXTENSION "qbe.vle"; /* Baumstruktur ============ */ RULE: ROOT ::= Main END; RULE: Main ::= TableDefinitions Queries END; RULE: TableDefinitions ::= TableDefinition* END; RULE pTableDef: TableDefinition ::= TableName Fields END; RULE: TableName ::= END; RULE: Fields ::= Field* END; RULE pNumberField: Field ::= FieldName FieldTypeNumber END; RULE pStringField: Field ::= FieldName FieldTypeString END; RULE: FieldName ::= END; RULE: FieldTypeNumber ::= END; RULE: FieldTypeString ::= END; RULE: Queries ::= Query* END; RULE pQueryDef: Query ::= QueryDef END; RULE: QueryDef ::= QueryName TableInstances END; RULE: QueryName ::= END; RULE: TableInstances ::= TableInstance* END; RULE pTableInst: TableInstance ::= TableDefName TableInstanceHead TableInstanceLine+ END; RULE: TableDefName ::= END; RULE: TableInstanceHead ::= TableInstanceHeadElement* END; RULE pTableInstLine: TableInstanceLine ::= Quantor TableInstanceLineElement* END; RULE pTableHeadElem: TableInstanceHeadElement ::= END; RULE pTableLineElem: TableInstanceLineElement ::= Condition Print END; RULE: Condition ::= END; RULE: Print ::= END; RULE pPrintAs: Print ::= PrintAs END; RULE: PrintAs ::= END; RULE: Quantor ::= END; SYMBOL PrintAs: persName: VLString EDITWITH ENTRY; SYMBOL Condition: persValue: VLString EDITWITH TEXT; SYMBOL QueryName: persName: VLString EDITWITH ENTRY; SYMBOL TableName: persName: VLString EDITWITH ENTRY; SYMBOL FieldName: persName: VLString EDITWITH ENTRY; SYMBOL Quantor: persNot: VLBoolean EDITWITH CHECKBOX; /* Querverbindungen ================ */ SYMBOL TableDefinition: persTableDefInstConnection: DEFTABLEKEY; SYMBOL Query: persTableDefInstConnection: DEFTABLEKEY; SYMBOL TableInstance: persTableDefInstConnection: DEFTABLEKEY; SYMBOL Field: persTableInterfaceDefInstConnection: DEFTABLEKEY; SYMBOL PrintAs: persTableInterfaceDefInstConnection: DEFTABLEKEY; SYMBOL TableInstanceHeadElement: persTableInterfaceDefInstConnection: DEFTABLEKEY; SYMBOL TableInstanceLineElement: persTableInterfaceDefInstConnection: DEFTABLEKEY; /* Sichten ======= */ VISUAL MainView(ROOT): TITLE "Query by Example"; BUTTON "Table" INSERTS pTableDef; BUTTON "Number Field" INSERTS pNumberField; BUTTON "String Field" INSERTS pStringField; BUTTON "Query" INSERTS pQueryDef; END; VISUAL QueryView(Query): TITLE "Query"; DROPPING TableDefinition INSERTS pTableInst; DROPPING Query INSERTS pTableInst; BUTTON "Line" INSERTS pTableInstLine; BUTTON "Print" INSERTS pPrintAs; END;