Мы работаем над расширением грамматики Antlr VB6 для охвата LotusScript.
LotusScript имеет несколько функций, которые чужды VB. Я пытаюсь, чтобы моя грамматика понимала что-то вроде этого:
x = Inputbox("How Happy are you")
y = Inputbox("Number", "Enter any number", "0")
Я пытался добавить грамматику:
inputboxStmt
: INPUTBOX WS? argList
;
INPUTBOX
: I N P U T B O X
;
Существующие определения из vb6 Grammar :
argList
: LPAREN (WS? arg (WS? COMMA WS? arg)*)? WS? RPAREN
;
arg
: (OPTIONAL WS)? ((BYVAL | BYREF) WS)? (PARAMARRAY WS)? ambiguousIdentifier typeHint? (WS? LPAREN WS? RPAREN)? (WS asTypeClause)? (WS? argDefaultValue)?
;
WS
: [ \t\u000C] +
;
Однако, когда я анализирую код выше, я получаю ошибки вроде:
line 5:14 no viable alternative at input '\nDim nstr As String\n x = Inputbox("How Happy are you"'
line 5:14 no viable alternative at input '\n x = Inputbox("How Happy are you"'
line 5:14 mismatched input '"How Happy are you"' expecting { [long list of keywords]}
line 6:16 mismatched input '"Number"' expecting {[same long list of keywords] }
line 6:26 mismatched input '"Enter any number"' expecting <EOF>
Что мне здесь не хватает?