ich in schriftlicher Form Grammatiken nicht super erfahrenen bin, aber lassen Sie uns sagen, dass ich einen Plattentyp wie diese haben: (Beispiele)Schreibe eine ParseKit Grammatik mit einer variierenden Anzahl von Feldern (in der Reihenfolge)
record # 1 source ages params A = 1 and b = 2 fields are A, B, C with values 1, 2, 3;
record # 2;
record # 3 source ages;
record # 4 params A = 1 and b = 2 fields are A, B, C with values 1, 2, 3;
record # 5 source ages fields are A, B, C with values 1, 2, 3;
record # 6 with values 1, 2, 3;
Grundsätzlich :
- Muss mit "record # Number" beginnen und mit einem Semikolon enden.
- Kann enthalten 0 oder 1 Captures in der folgenden Reihenfolge:
- Quelldatenmenge
- Parameter des Datensatzes
- Felder aus Dataset
- Werte von Dataset
Hier ist meine Grammatik, ist es nicht funktioniert:
--- Start Grammatik:
@start = record;
record = 'record' '#' numeric rest* ';';
rest = 'source' alphanumeric paramsAndOrFieldsAndOrWithValues*;
paramsAndOrFieldsAndOrWithValues = (paramsList)? (fieldsList)? (valuesList)?;
paramsList = 'params' alpha expr numeric ('and' alpha expr numeric)*;
fieldsList = 'fields' 'are' alpha (comma alpha)*;
valuesList = 'with' 'values' numeric (comma numeric)*;
alpha = Word;
numeric = Number;
alphanumeric = (alpha | numeric | '_' | '.');
comma = ',';
expr = '=';
--- Ende Grammatik
@ "Entwickler von ParseKit", können Sie mir bitte helfen?
Thanks :)
Datensatz # 1 Quelle hallo Felder sind A, B, C; kann Felder nicht analysieren, keine Idee, warum? mit deiner Grammatik –
Hm, das funktioniert hier für mich gegen meine Grammatik. Hier ist ein Ausdruck von meinem Datensatz Rückruf: '- [DebugAppDelegate Parser: didMatchRecord:] [Datensatz, #, 1, Quelle, hallo, Felder, sind, A, ,, B, ,, C,;] record/#/1/source/hallo/fields/sind/A /,/B /,/C /;^' –
Seltsam, in der" ParseKit Demo "zeigt es nicht die" Felder "Zweig/Baum ... möglicherweise ein Fehler in die PK Demo App? Hier ist ein Screenshot: http://imgur.com/bjb10 –