不匹配的输入ANTLR4 java

不匹配的输入ANTLR4 java,java,input,grammar,antlr4,Java,Input,Grammar,Antlr4,晚安!,对于这个lil问题,我需要一些帮助,我在java上为C的西班牙语版本构建语法 Grammar unalang; //GRAMATICA init: value? declare_variables* value? declare_function* value? ; //REALIZACION DE COMENTARIOS value: single_comments | multicomment ; single_comments: COMMENTS frase WS ; mu

晚安!,对于这个lil问题,我需要一些帮助,我在java上为C的西班牙语版本构建语法

Grammar unalang;

//GRAMATICA
init: value? declare_variables* value? declare_function* value?
;

//REALIZACION DE COMENTARIOS
value: single_comments
| multicomment
;

single_comments: COMMENTS frase WS
;

multicomment: COMMENT_MULTI frase* COMMENT_MULTICLOSE WS
;


//DECLARACION VARIABLES GLOBALES
declare_variables: declare_entero 
| declare_vacio 
| declare_real 
| declare_cadena
;

declare_entero: ENTERO WS STRING (COMA WS STRING)* PYC value* WS
| ENTERO WS STRING IGUAL INT (COMA WS STRING IGUAL INT)* PYC value* WS
;

declare_vacio: VACIO WS STRING (COMA WS STRING)* PYC value* WS
;

declare_real: REAL WS STRING (COMA WS STRING)* PYC value* WS
| REAL WS STRING IGUAL INT (DOT INT)?  (COMA WS STRING IGUAL INT (DOT INT)?)* PYC value* WS
;

declare_cadena: CADENA WS STRING (COMA WS STRING)* PYC value* WS
| CADENA WS STRING IGUAL INT (COMA WS STRING IGUAL COMILLAS palabras* COMILLAS)* PYC value* WS
;

//DECLARACION FUNCIONES
declare_function: declare OPEN_PAR (declare_tipo)? CLOSE_PAR OPEN_LL contenido RETORNAR (STRING|(INT(DOT INT)?))? PYC WS CLOSE_LL
;

declare_tipo: ENTERO WS STRING (RAYA_PISO STRING)* (COMA WS declare_tipo)*
| VACIO WS STRING (RAYA_PISO STRING)* (COMA WS declare_tipo)*
| CADENA WS STRING (RAYA_PISO STRING)* (COMA WS declare_tipo)*
| REAL WS STRING (RAYA_PISO STRING)* (COMA WS declare_tipo)*
;

contenido: asignaciones* condicional*
| WS
|
;

asignaciones: STRING IGUAL INT WS
| STRING IGUAL COMILLAS frase COMILLAS WS
| STRING IGUAL INT (DOT INT)? WS
;



condicional: SI OPEN_PAR STRING comparador STRING CLOSE_PAR  ((YY|OO) OPEN_PAR STRING comparador STRING CLOSE_PAR)* ENTONCES OPEN_LL contenido CLOSE_LL
;

comparador: COMP_IGUAL
| MAYOR
| MENOR
| COMP_DIFERENTE
| COMP_MENOR
| COMP_MAYOR
;


declare: ENTERO WS STRING (RAYA_PISO STRING)*
| VACIO WS STRING (RAYA_PISO STRING)*
| CADENA WS STRING (RAYA_PISO STRING)*
| REAL WS STRING (RAYA_PISO STRING)*
;


frase: (palabras)* WS
;

palabras: STRING
| WS
;

// TOKENS
INT : [0-9]+ ; // Define token INT as one or more digits
STRING: ([a-z]|[A-Z])+ ; // Define token STRING as one or more letters(uppercase or lowercase)

//Comentarios
COMMENTS: '//' ;
COMMENT_MULTI: '/*' ;
COMMENT_MULTICLOSE: '*/' ;

//Operadores binarios
//Aritmeticos
SUMA: '+' ;
RESTA: '-' ;
MULTIPLICACION: '*' ;
DIVISION: '/' ;
RESIDUO: '%' ;

//Operador unario
NO: 'no' ;

//RELACIONALES
IGUAL: '=' ;
COMP_IGUAL: '==';
COMP_MENOR: '<=';
COMP_MAYOR: '>=';
COMP_DIFERENTE: '!=';
MENOR: '<';
MAYOR: '>';

//LOGICOs
YY: 'y' ;
OO: 'o' ;
ENTONCES: 'entonces' ;
RETORNAR: 'retornar' ;

//SIMBOLOS
OPEN_PAR: '(' ;
CLOSE_PAR: ')' ;
OPEN_LL: '{' ;
CLOSE_LL: '}' ;
PYC: ';' ;
COMA: ',' ;
DOT: '.' ;
RAYA_PISO: '_' ;
COMILLAS: '\'' ;

//PALABRAS
ENTERO: 'entero' ;
REAL: 'real' ;
CADENA: 'cadena' ;
VACIO: 'vacio' ;
RETURN: 'retorno' ;

//Condicionales
SI: 'si' ;
SINO: 'si_no' ;

//Ciclos
MIENTRAS: 'mientras' ;
HACER: 'hacer' ;

WS : [' '\t\r\n]+ -> skip ; // Define whitespace rule, toss it out ;

你试过本文讨论的技巧了吗?我明天早上查一下,非常感谢你,老兄
// Ejemplo en UNALang
entero g = 9; // variable global
entero fact(entero x) { // funcion factorial
 si x==0 entonces {
retornar 1;
 }
 retornar x * fact(x-1);