Skip to content

Commit 8c6c6c4

Browse files
committed
add #paragma and delimiter
1 parent 8a5a394 commit 8c6c6c4

File tree

3 files changed

+15
-3
lines changed

3 files changed

+15
-3
lines changed

README.md

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,10 @@
88
# Datalog Plugin for the IntelliJ Platform
99
For a list of changes in the newest version, please refer to the [changelog](./CHANGELOG.md).
1010

11+
## 改进
12+
1. 增加了multi head的支持
13+
2. 增加了ByteCodeDL用到的一些语法比如`#if` `#paragma`
14+
1115
## Features
1216

1317
### Syntax Highlighting

src/main/grammars/datalog.bnf

Lines changed: 10 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -26,6 +26,7 @@
2626
ELSE_DIRECTIVE = "#else"
2727
ENDIF_DIRECTIVE = "#endif"
2828
DEFINE_DIRECTIVE = "#define"
29+
PARAGMA_DIRECTIVE = "#paragma"
2930

3031
FLOAT_TYPE = "float"
3132
NUMBER_TYPE = "number"
@@ -157,7 +158,7 @@ private ProgramElement_first ::= (
157158
".input" | ".output" | ".printsize" |
158159
".pragma" |
159160
".symbol_type" | ".number_type" |
160-
DEFINE_DIRECTIVE | IF_DIRECTIVE | ELSE_DIRECTIVE | IFDEF_DIRECTIVE | IFNDEF_DIRECTIVE | ENDIF_DIRECTIVE | INCLUDE_DIRECTIVE |
161+
DEFINE_DIRECTIVE | IF_DIRECTIVE | ELSE_DIRECTIVE | IFDEF_DIRECTIVE | IFNDEF_DIRECTIVE | ENDIF_DIRECTIVE | INCLUDE_DIRECTIVE | PARAGMA_DIRECTIVE |
161162
IDENTIFIER)
162163

163164

@@ -187,6 +188,7 @@ Preprocessor ::= (IF_DIRECTIVE IDENTIFIER ("<" | "==" | ">") Constant)
187188
| (IFNDEF_DIRECTIVE IDENTIFIER)
188189
| ENDIF_DIRECTIVE
189190
| Include
191+
| (PARAGMA_DIRECTIVE IDENTIFIER)
190192
| (MacroDecl (LINE_BREAK | <<eof>>))
191193
| MacroInvocation
192194

@@ -243,6 +245,7 @@ InDeclIOOpt ::= "filename" "=" STRING
243245
| "columns" "=" STRING
244246
| "headers" "=" STRING
245247
| "rfc4180" "=" ("true" | "false")
248+
| "delimiter" "=" STRING
246249
InDeclParam ::= InDeclIO | InDeclIOOpt
247250

248251
OutDeclIO ::= "IO" "=" ("stdout" | "file" | "sqlite")
@@ -345,7 +348,12 @@ AssocExpr ::= "(" Argument ")"
345348
TupleExpr ::= <<listCommaBracket Argument>> "]" | "[" "]"
346349

347350
FunctorExpr ::= "@" AnyRef <<listCommaParens Argument>> ")"
348-
MacroExpr ::= AnyRef <<listCommaParens (Argument | MacroParameter)>> ")"
351+
352+
//IntrinsicFunctor ::= "ord" | "to_float" | "to_number" | "to_string"
353+
// | "to_unsigned" | "cat" | "strlen" | "substr" | "autoinc"
354+
//IntrinsicFunctorExpr ::= IntrinsicFunctor ArgumentList
355+
356+
MacroExpr ::= IDENTIFIER <<listCommaParens (Argument | MacroParameter)>> ")"
349357

350358
BinOpExpr ::= Argument BinOp Argument
351359
AsExpr ::= Argument "as" Variable

src/main/kotlin/com/lfrobeen/datalog/ide/highlight/DatalogSyntaxHighlighter.kt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -36,7 +36,7 @@ class DatalogSyntaxHighlighter : SyntaxHighlighterBase() {
3636

3737
// IDENTIFIER -> DatalogColors.IDENTIFIER
3838

39-
DEFINE_DIRECTIVE, INCLUDE_DIRECTIVE,
39+
DEFINE_DIRECTIVE, INCLUDE_DIRECTIVE, PARAGMA_DIRECTIVE,
4040
IF_DIRECTIVE, ELSE_DIRECTIVE, IFDEF_DIRECTIVE, IFNDEF_DIRECTIVE, ENDIF_DIRECTIVE ->
4141
DatalogColors.PREPROCESSOR
4242

0 commit comments

Comments
 (0)