Files
langkit/utils/langkit.vim
Pierre-Marie de Rodat 928e4358fc Lkt: rework the syntax for the logic DSL
Replace `%eq(a, b)` with:

* `a <-> b`: unify two logic variables
* `a <- b`: assign a value to a logic variable

Replace `%eq(a, b, conv_prop=N.p)` with:

* `a <- N.p%(...)`: assign a value to a logic variable after a
  conversion/combination using a property from 1) one or multiple logic
  variables or 2) an entity:

Replace `%predicate(N.p, ...)` with:

* `N.p%(...)`: create a predicate atom from a property, several logic
  variables and optional extra arguments.
2024-09-17 11:43:48 +00:00

51 lines
2.0 KiB
VimL

" Vim syntax file
" Language: langkit
if exists("b:current_syntax")
finish
endif
syn keyword langkitKeyword grammar lexer family language class struct nextgroup=langkitEntity skipwhite
syn keyword langkitKeyword fun nextgroup=langkitFunction skipwhite
syn match langkitFunction "\h\w*" display contained
syn match langkitEntity "\h\w*" display contained
syn keyword langkitKeyword is end match when field as if elif then else block case val in do bind is_a generic implements trait import dynvar try
syn keyword langkitLiteral false true lfalse ltrue
syn keyword langkitQualifier parse memoized public enum qualifier
syn keyword langkitOperator new entity null or and dont_skip not
syn region langkitString start=+"+ skip=+\\"+ end=+"+
syn region langkitChar start=+'+ skip=+\\"+ end=+'+
syn match langkitToken "@\s*\h\%(\w\|\.\)*" display
syn match langkitGrammarRule "\%(\w\|_\)\+\s*\(<-\)\@=" display
syn match langkitLiteral "\d\+" display
syn match langkitComment "#.*$"
syn match langkitOperator "<->"
syn match langkitOperator "<-"
syn match langkitOperator "?"
syn match langkitOperator "list+"
syn match langkitOperator "list\*"
syn match langkitOperator "/"
syn match langkitOperator "|"
syn match langkitOperator "|>"
syn match langkitLineString +|".*$+
hi def link langkitKeyword Statement
hi def link langkitQualifier Identifier
hi def link langkitString String
hi def link langkitChar String
hi def link langkitOperator Special
hi def link langkitFunction Define
hi def link langkitEntity Function
hi def link langkitToken Define
hi def link langkitGrammarRule Define
hi def link langkitLiteral Number
hi def link langkitLineString String
hi def link langkitComment Comment
" hi def link LalstateSloc Type
" hi def link LalstateCurrentExpr Identifier
" hi def link LalstateExpr Identifier
" hi def link LalstateVarName Function
" hi def link LalstateGenCodeVarName Constant
" hi def link LalstateValue String
" hi def link LalstateExprEvalValue String