78 lines
1.9 KiB
YAML
78 lines
1.9 KiB
YAML
%YAML 1.2
|
|
---
|
|
name: Centvrion
|
|
file_extensions:
|
|
- cent
|
|
scope: source.centvrion
|
|
|
|
contexts:
|
|
main:
|
|
- include: comments
|
|
- include: strings
|
|
- include: fractions
|
|
- include: keywords
|
|
- include: numerals
|
|
- include: constants
|
|
- include: builtins
|
|
- include: modules
|
|
- include: operators
|
|
- include: identifiers
|
|
|
|
comments:
|
|
- match: '//[^\n]*'
|
|
scope: comment.line.centvrion
|
|
- match: '/\*'
|
|
scope: comment.block.centvrion
|
|
push:
|
|
- meta_scope: comment.block.centvrion
|
|
- match: '\*/'
|
|
pop: true
|
|
|
|
strings:
|
|
- match: '"'
|
|
scope: string.quoted.double.centvrion
|
|
push:
|
|
- meta_scope: string.quoted.double.centvrion
|
|
- match: '"'
|
|
pop: true
|
|
- match: "'"
|
|
scope: string.quoted.single.centvrion
|
|
push:
|
|
- meta_scope: string.quoted.single.centvrion
|
|
- match: "'"
|
|
pop: true
|
|
|
|
fractions:
|
|
- match: '\b[IVXLCDM][IVXLCDM_]*(?:S[S:.|]*|:[S:.|]+|\.[S:.|]*)'
|
|
scope: constant.numeric.fraction.centvrion
|
|
- match: '(?<![IVXLCDM_])(?:S[S:.|]+|:[S:.|]+)'
|
|
scope: constant.numeric.fraction.centvrion
|
|
|
|
numerals:
|
|
- match: '\b[IVXLCDM][IVXLCDM_]*\b'
|
|
scope: constant.numeric.centvrion
|
|
|
|
constants:
|
|
- match: '\b(VERITAS|FALSITAS|NVLLVS)\b'
|
|
scope: constant.language.centvrion
|
|
|
|
builtins:
|
|
- match: '\b(AVDI_NVMERVS|AVDI|DICE|FORTIS_NVMERVS|FORTIS_ELECTIONIS|LONGITVDO)\b'
|
|
scope: support.function.builtin.centvrion
|
|
|
|
modules:
|
|
- match: '\b(FORS|FRACTIO|MAGNVM|SVBNVLLA)\b'
|
|
scope: support.class.module.centvrion
|
|
|
|
keywords:
|
|
- match: '\b(ALVID|AVT|DEFINI|DESIGNA|DONICVM|DVM|ERVMPE|EST|ET|FACE|INVOCA|IN|MINVS|NON|PER|PLVS|REDI|SI|TVNC|VSQVE|VT|CVM)\b'
|
|
scope: keyword.control.centvrion
|
|
|
|
operators:
|
|
- match: '[+\-*/&]'
|
|
scope: keyword.operator.centvrion
|
|
|
|
identifiers:
|
|
- match: '[abcdefghiklmnopqrstvxyz_]+'
|
|
scope: variable.other.centvrion
|