PRIMER COMMIT
This commit is contained in:
406
zaplangLexer.g4
Normal file
406
zaplangLexer.g4
Normal file
@@ -0,0 +1,406 @@
|
||||
lexer grammar zaplangLexer;
|
||||
|
||||
Bul
|
||||
: 'bul'
|
||||
;
|
||||
|
||||
Func
|
||||
: 'func'
|
||||
;
|
||||
|
||||
Fin //break
|
||||
: 'fin'
|
||||
;
|
||||
|
||||
Caso
|
||||
: 'caso'
|
||||
;
|
||||
|
||||
Carac
|
||||
: 'carac'
|
||||
;
|
||||
|
||||
Pordef //default
|
||||
: 'pordef'
|
||||
;
|
||||
|
||||
Hacer
|
||||
: 'hacer'
|
||||
;
|
||||
|
||||
Doble
|
||||
: 'doble'
|
||||
;
|
||||
|
||||
Sino
|
||||
: 'sino'
|
||||
;
|
||||
|
||||
Enum
|
||||
: 'enum'
|
||||
;
|
||||
|
||||
Falso
|
||||
: 'falso'
|
||||
;
|
||||
|
||||
Flot
|
||||
: 'flot'
|
||||
;
|
||||
|
||||
Por
|
||||
: 'por'
|
||||
;
|
||||
|
||||
Si
|
||||
: 'si'
|
||||
;
|
||||
|
||||
|
||||
Ent
|
||||
: 'Ent'
|
||||
;
|
||||
|
||||
//Nulptr
|
||||
// : 'nullptr'
|
||||
// ;
|
||||
|
||||
Retornar
|
||||
: 'retornar'
|
||||
;
|
||||
|
||||
|
||||
ConFirma
|
||||
: 'cf'
|
||||
;
|
||||
|
||||
Estruct
|
||||
: 'estruct'
|
||||
;
|
||||
|
||||
Interrup
|
||||
: 'interrup'
|
||||
;
|
||||
|
||||
Verdadero
|
||||
: 'verdadero'
|
||||
;
|
||||
|
||||
SinFirma
|
||||
: 'sf'
|
||||
;
|
||||
|
||||
Vacio
|
||||
: 'vacio'
|
||||
;
|
||||
|
||||
Mientras // While
|
||||
: 'mientras'
|
||||
;
|
||||
|
||||
ParenIzq
|
||||
: '('
|
||||
;
|
||||
|
||||
ParenDer
|
||||
: ')'
|
||||
;
|
||||
|
||||
CorcheteIzq
|
||||
: '['
|
||||
;
|
||||
|
||||
CorcheteDer
|
||||
: ']'
|
||||
;
|
||||
|
||||
LlaveIzq
|
||||
: '{'
|
||||
;
|
||||
|
||||
LlaveDer
|
||||
: '}'
|
||||
;
|
||||
|
||||
MenorQue
|
||||
: '<'
|
||||
;
|
||||
|
||||
MenorOIgualQue
|
||||
: '<='
|
||||
;
|
||||
|
||||
MayorQue
|
||||
: '>'
|
||||
;
|
||||
|
||||
MayorOIgualQue
|
||||
: '>='
|
||||
;
|
||||
|
||||
Mas
|
||||
: '+'
|
||||
;
|
||||
|
||||
MasMas
|
||||
: '++'
|
||||
;
|
||||
|
||||
Menos
|
||||
: '-'
|
||||
;
|
||||
|
||||
MenosMenos
|
||||
: '--'
|
||||
;
|
||||
|
||||
Estrella
|
||||
: '*'
|
||||
;
|
||||
|
||||
Div
|
||||
: '/'
|
||||
;
|
||||
|
||||
Mod
|
||||
: '%'
|
||||
;
|
||||
|
||||
Y
|
||||
: '&'
|
||||
;
|
||||
|
||||
O
|
||||
: '|'
|
||||
;
|
||||
|
||||
DesplazIzq
|
||||
: '<<'
|
||||
;
|
||||
|
||||
DesplazDer
|
||||
: '>>'
|
||||
;
|
||||
|
||||
Xor
|
||||
: '^'
|
||||
;
|
||||
|
||||
Complemento
|
||||
: '~'
|
||||
;
|
||||
|
||||
YY
|
||||
: '&&'
|
||||
;
|
||||
|
||||
OO
|
||||
: '||'
|
||||
;
|
||||
|
||||
Not
|
||||
: '!'
|
||||
;
|
||||
|
||||
Pregunta
|
||||
: '?'
|
||||
;
|
||||
|
||||
DosPuntos
|
||||
: ':'
|
||||
;
|
||||
|
||||
PuntoYComa
|
||||
: ';'
|
||||
;
|
||||
|
||||
Coma
|
||||
: ','
|
||||
;
|
||||
|
||||
Asignar
|
||||
: '='
|
||||
;
|
||||
|
||||
// Operadores de asignación compuesta
|
||||
EstrellaAsignacion
|
||||
: '*='
|
||||
;
|
||||
|
||||
DivAsignacion
|
||||
: '/='
|
||||
;
|
||||
|
||||
ModAsignacion
|
||||
: '%='
|
||||
;
|
||||
|
||||
MasAsignacion
|
||||
: '+='
|
||||
;
|
||||
|
||||
MenosAsignacion
|
||||
: '-='
|
||||
;
|
||||
|
||||
|
||||
YAsignacion
|
||||
: '&='
|
||||
;
|
||||
|
||||
OAsignacion
|
||||
: '|='
|
||||
;
|
||||
|
||||
DesplazIzqAsignacion
|
||||
: '<<='
|
||||
;
|
||||
|
||||
DesplazDerAsignacion
|
||||
: '>>='
|
||||
;
|
||||
|
||||
XorAsignacion
|
||||
: '^='
|
||||
;
|
||||
|
||||
Igual
|
||||
: '=='
|
||||
;
|
||||
|
||||
Diferente
|
||||
: '!='
|
||||
;
|
||||
|
||||
Flecha
|
||||
: '->'
|
||||
;
|
||||
|
||||
Punto
|
||||
: '.'
|
||||
;
|
||||
|
||||
Identificador
|
||||
: IdentificadorSindigito (IdentificadorSindigito | Digito)*
|
||||
;
|
||||
|
||||
fragment IdentificadorSindigito
|
||||
: Nodigito
|
||||
;
|
||||
|
||||
fragment Nodigito
|
||||
: [a-zA-Z_]
|
||||
;
|
||||
|
||||
fragment Digito
|
||||
: [0-9]
|
||||
;
|
||||
|
||||
ConstanteEntera
|
||||
: ConstanteDecimal
|
||||
| ConstanteOctal
|
||||
| HexaConstanteDecimal
|
||||
;
|
||||
|
||||
fragment ConstanteDecimal
|
||||
: DigitoNoCero Digito*
|
||||
;
|
||||
|
||||
fragment ConstanteOctal
|
||||
: '0' DigitoOctal*
|
||||
;
|
||||
|
||||
fragment HexaConstanteDecimal
|
||||
: PrefijoHexadecimal DigitoHexadecimal+
|
||||
;
|
||||
|
||||
fragment PrefijoHexadecimal
|
||||
: '0' [xX]
|
||||
;
|
||||
|
||||
fragment DigitoNoCero
|
||||
: [1-9]
|
||||
;
|
||||
|
||||
fragment DigitoOctal
|
||||
: [0-7]
|
||||
;
|
||||
|
||||
fragment DigitoHexadecimal
|
||||
: [0-9a-fA-F]
|
||||
;
|
||||
|
||||
fragment SufijoEntero
|
||||
: [uUlL]+
|
||||
;
|
||||
|
||||
ConstanteFlotante
|
||||
: (Digito+ '.' Digito* | Digito* '.' Digito+) ([eE] [+-]? Digito+)? [fFdD]?
|
||||
| Digito+ [eE] [+-]? Digito+ [fFdD]?
|
||||
;
|
||||
|
||||
ConstanteCaracteres
|
||||
: '\'' CCharSequence '\''
|
||||
;
|
||||
|
||||
fragment CCharSequence
|
||||
: CChar+
|
||||
;
|
||||
|
||||
fragment CChar
|
||||
: ~['\\\r\n]
|
||||
| SecuenciaEscape
|
||||
;
|
||||
|
||||
fragment SecuenciaEscape
|
||||
: SecuenciaEscapeSimple
|
||||
| SecuenciaEscapeOctal
|
||||
| SecuenciaEscapeHexadecimal
|
||||
;
|
||||
|
||||
fragment SecuenciaEscapeSimple
|
||||
: '\\' ['"?abfnrtv\\]
|
||||
;
|
||||
|
||||
fragment SecuenciaEscapeOctal
|
||||
: '\\' DigitoOctal DigitoOctal? DigitoOctal?
|
||||
;
|
||||
|
||||
fragment SecuenciaEscapeHexadecimal
|
||||
: '\\x' DigitoHexadecimal+
|
||||
;
|
||||
|
||||
CadenaLiteral
|
||||
: '"' SSecuenciaCaracteres? '"'
|
||||
;
|
||||
|
||||
fragment SSecuenciaCaracteres
|
||||
: SCaracter+
|
||||
;
|
||||
|
||||
fragment SCaracter
|
||||
: ~["\\\r\n]
|
||||
| SecuenciaEscape
|
||||
| '\\\n'
|
||||
| '\\\r\n'
|
||||
;
|
||||
|
||||
Whitespace
|
||||
: [ \t]+ -> channel(HIDDEN)
|
||||
;
|
||||
|
||||
Newline
|
||||
: ('\r' '\n'? | '\n') -> channel(HIDDEN)
|
||||
;
|
||||
|
||||
BlockComment
|
||||
: '/*' .*? '*/' -> channel(HIDDEN)
|
||||
;
|
||||
|
||||
LineComment
|
||||
: '//' ~[\r\n]* -> channel(HIDDEN)
|
||||
;
|
||||
|
||||
LineCommentHash
|
||||
: '#' ~[\r\n]* -> channel(HIDDEN)
|
||||
;
|
||||
Reference in New Issue
Block a user