2
我不是在写文法超经验的,但让我们说我有一个记录类型类似这样的: (例子)写ParseKit语法与不同数量的字段(按顺序)
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;
基本上:
- 必须以“record#Number”开头并以分号结尾。
- 可能含有0或1捕获以下顺序:
- 源数据集
- 数据集的参数,从数据集中
- 领域从数据集
- 值
这里是我的语法,这不是working:
--- start grammar:
@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 = '=';
---结尾语法
@“ParseKit开发者”,你能帮我吗?
谢谢:)
record#1 source hello fields are A,B,C; 无法解析字段,任何想法,为什么?使用你的语法 – 2012-04-04 10:35:58
嗯,这对我来说正常工作对我的语法。下面是我的Record回调的打印输出: '[DebugAppDelegate parser:didMatchRecord:] [record,#,1,source,hello,fields,are,A,,, B,,, C,;] record /#/ 1/source/hello/fields/are/A /,/ B /,/ C /; ^' – 2012-04-04 16:10:21
奇怪的是,在“ParseKit Demo”中它没有显示'fields'分支/树...可能是一个bug PK Demo应用程序? 下面是截图:http://imgur.com/bjb10 – 2012-04-04 21:31:42