2017-05-08 77 views
0
VARNAME:[_a-zA-Z0-9.]+; 

prog:expression +; 

expression: VARNAME | 
    '!' expression | 
    expression '=' expression | 
    expression '+=' expression | 
    expression '-=' expression | 
    expression ('<'|'>') expression | 
    expression expression | 
    expression ('+'|'-'|'*'|'/'|'%') expression | 
    expression ('=='|'!=') expression | 
    expression ('>='|'<=') expression | 
    expression ('&&'|'||') expression | 
    expression ('++'|'--') | 
    ('++'|'--') expression |  
    '(' expression ')'| 
    '\'' expression '\'' | 
    expression ',' expression | 
    expression '*' | 
    '(' expression ')' expression | 
    expression '->' expression | 
    expression expression |   //var decl 
    expression '<' expression '>' expression | //class template 
    expression '[' expression ']' |   //array 
    expression '.' expression |   //class obj 
    expression '(' expression? ')' |   //func call 
    '{' expression '}'; 

解析文本:爲什麼規則不起作用?

(CKbdpBase*)handle->open(); 

的規則不起作用,它注意到"(CKbdpBase*)"不能正確解析。

如何修復規則?

+1

請仔細閱讀[問]和[MCVE。你甚至沒有發佈確切的錯誤信息。 –

回答

0

我想你錯過:

  • VARNAMEexpression
  • 一個分號prog統治結束:prog: expression + ';' ;
相關問題