|
|
|
@ -12,13 +12,14 @@ RCURLYBRACE: '}';
|
|
|
|
|
SYMB_NOT: ('!'|'~'|'not'); |
|
|
|
|
SYMB_AND: ('&'+|'^'|'and'); |
|
|
|
|
SYMB_OR: ('|'+|'v'|'or'); |
|
|
|
|
SYMB_IMPL: ('->'|'=>'); |
|
|
|
|
SYMB_IFF: ([<][-]+[>]|[<][=]+[>]|'iff'); |
|
|
|
|
SYMB_IMPL: (~[<][-]+[>]|~[<][=]+[>]); |
|
|
|
|
|
|
|
|
|
// Rules |
|
|
|
|
start: open <EOF> | closed <EOF>; |
|
|
|
|
|
|
|
|
|
closed: atomic | not | LBRACE open RBRACE; |
|
|
|
|
open: and2 | and | or2 | or | implies; |
|
|
|
|
open: and2 | and | or2 | or | implies | iff; |
|
|
|
|
|
|
|
|
|
// Schemata für atomische Ausdrücke |
|
|
|
|
atomic: taut | contradiction | atom; //| generic; |
|
|
|
@ -26,8 +27,8 @@ taut: ('1'|'true');
|
|
|
|
|
contradiction: ('0'|'false'); |
|
|
|
|
atom: 'A0' | 'A1' | 'A' NUMBER; // muss A0, A1 wegen falsum/verum extra auflisten |
|
|
|
|
// // als 'generische' Formeln schreibe bspw. {F}, {G}, {F1}, usw. |
|
|
|
|
// // generic: LCURLYBRACE (.*?) RCURLYBRACE; |
|
|
|
|
// FIXME: dieses Schema führt zu Konflikten |
|
|
|
|
// generic: LCURLYBRACE (~[{])+ RCURLYBRACE; |
|
|
|
|
// // FIXME: dieses Schema führt zu Konflikten |
|
|
|
|
|
|
|
|
|
// Schema für Negation: ¬ F |
|
|
|
|
not: symb=SYMB_NOT closed; |
|
|
|
@ -39,3 +40,5 @@ or2: closed symb=SYMB_OR closed;
|
|
|
|
|
or: ( closed ( symb=SYMB_OR closed )+ ); |
|
|
|
|
// Schema für Implikation: F1 ⟶ F2 |
|
|
|
|
implies: closed symb=SYMB_IMPL closed; |
|
|
|
|
// Schema für Implikation: F1 ⟷ F2 |
|
|
|
|
iff: closed symb=SYMB_IFF closed; |
|
|
|
|