qualquer ajuda pode me converter este arquivo de gramática ANTLR 2.0 para ANTLR 3.0 sintaxe?
Pergunta
Eu converti a partes 'fácil' (fragmento, @header e @member declerations etc.), mas desde que eu sou novo para Antlr Eu tenho um realmente difícil tempo de conversão das demonstrações Árvore etc.
Eu uso o seguinte guia de migração .
O arquivo de gramática pode ser encontrada aqui. ...
Abaixo, você pode encontrar alguns exemplos em que eu me deparo com problemas:
Por exemplo, eu tenho problemas com:
n3Directive0!:
d:AT_PREFIX ns:nsprefix u:uriref
{directive(#d, #ns, #u);}
;
ou
propertyList![AST subj]
: NAME_OP! anonnode[subj] propertyList[subj]
| propValue[subj] (SEMI propertyList[subj])?
| // void : allows for [ :a :b ] and empty list "; .".
;
propValue [AST subj]
: v1:verb objectList[subj, #v1]
// Reverse the subject and object
| v2:verbReverse subjectList[subj, #v2]
;
subjectList![AST oldSub, AST prop]
: obj:item { emitQuad(#obj, prop, oldSub) ; }
(COMMA subjectList[oldSub, prop])? ;
objectList! [AST subj, AST prop]
: obj:item { emitQuad(subj,prop,#obj) ; }
(COMMA objectList[subj, prop])?
| // Allows for empty list ", ."
;
Solução
n3Directive0!:
d=AT_PREFIX ns=nsprefix u=uriref
{directive($d, $ns, $u);}
;
- Você tem que usar '=' para atribuições.
- Os tokens podem, então, ser usado como '$ tokenname.getText ()', ...
- Resultados de regras podem, então, ser usado em seu código como 'rulename.result'
- Se você tem regras que têm nomes de resultados declarados, você tem que usar estes nomes iso.
'Resultado'.
Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow