feat: add missing KF6 framework recipes
This commit is contained in:
@@ -0,0 +1,148 @@
|
||||
/* This test file tests Kate's ANTLR highlighting
|
||||
compilable bt ANTLR although not directly:
|
||||
grammar can be alone file for both parser and lexer
|
||||
or two files
|
||||
This file is merged TestParser.g4 and TestLexer.g4
|
||||
this lines also tests regions of multiline comment
|
||||
*/
|
||||
//file TestParser.g4
|
||||
parser grammar TestParser;
|
||||
|
||||
options { tokenVocab = TestLexer; }
|
||||
|
||||
// The main entry point for parsing a grammar.
|
||||
|
||||
startRule
|
||||
: (expression | STRING)+ EOF
|
||||
;
|
||||
|
||||
expression
|
||||
: expression PLUS mulExpr
|
||||
| expression MINUS mulExpr
|
||||
| mulExpr
|
||||
;
|
||||
|
||||
mulExpr
|
||||
: mulExpr MUL unaryExpr
|
||||
| mulExpr DIV unaryExpr
|
||||
| unaryExpr
|
||||
;
|
||||
|
||||
unaryExpr
|
||||
: atom
|
||||
| LPAR expression RPAR
|
||||
;
|
||||
|
||||
atom
|
||||
: IDENT
|
||||
| number
|
||||
;
|
||||
|
||||
number
|
||||
: INT
|
||||
| FLOAT
|
||||
;
|
||||
|
||||
//================================
|
||||
//file TestLexer.g4
|
||||
|
||||
lexer grammar TestLexer;
|
||||
|
||||
/*'channels' and '{' must be in one line
|
||||
to correct highlighting, highlighter can't
|
||||
recognize regular expression "(options|tokens|channels)(?=([\s]*{))"
|
||||
where apart from \s whitrspaces are end of lines
|
||||
*/
|
||||
channels { OFF_CHANNEL , COMMENT }
|
||||
|
||||
|
||||
PLUS
|
||||
: '+'
|
||||
;
|
||||
|
||||
MINUS
|
||||
: '-'
|
||||
;
|
||||
|
||||
MUL
|
||||
: '*'
|
||||
;
|
||||
|
||||
DIV
|
||||
: '/'
|
||||
;
|
||||
|
||||
LPAR
|
||||
: '('
|
||||
;
|
||||
|
||||
RPAR
|
||||
: ')'
|
||||
;
|
||||
|
||||
IDENT
|
||||
: Nondigit
|
||||
( Nondigit
|
||||
| Digit
|
||||
)*
|
||||
;
|
||||
|
||||
fragment
|
||||
Digit
|
||||
: [0-9]
|
||||
;
|
||||
|
||||
fragment
|
||||
NonzeroDigit
|
||||
: [1-9]
|
||||
;
|
||||
|
||||
fragment
|
||||
Nondigit
|
||||
: [a-zA-Z_]
|
||||
;
|
||||
|
||||
Sign
|
||||
: '+' | '-'
|
||||
;
|
||||
|
||||
INT
|
||||
: Sign? (NonzeroDigit Digit* | '0')
|
||||
;
|
||||
|
||||
fragment
|
||||
DigitSequence
|
||||
: Digit+
|
||||
;
|
||||
|
||||
fragment
|
||||
ExponentPart
|
||||
: [eE] Sign? DigitSequence
|
||||
;
|
||||
|
||||
fragment
|
||||
FractionalConstant
|
||||
: DigitSequence? '.' DigitSequence
|
||||
| DigitSequence '.'
|
||||
;
|
||||
|
||||
FLOAT
|
||||
: (FractionalConstant ExponentPart? | DigitSequence ExponentPart)
|
||||
;
|
||||
|
||||
|
||||
fragment
|
||||
EscapeSequence
|
||||
: '\\' ['"?abfnrtvhe\\]
|
||||
;
|
||||
|
||||
//between [] is charset , test escape \
|
||||
fragment
|
||||
SChar
|
||||
: ~["\\\r\n]
|
||||
| EscapeSequence
|
||||
;
|
||||
|
||||
STRING
|
||||
: '"' SChar* '"'
|
||||
;
|
||||
Reference in New Issue
Block a user