Files
centvrion/snippets/syntaxes/centvrion.sublime-syntax
2026-04-21 14:24:48 +02:00

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|SEMEN)\b'
scope: support.function.builtin.centvrion
modules:
- match: '\b(FORS|FRACTIO|MAGNVM|SVBNVLLA)\b'
scope: support.class.module.centvrion
keywords:
- match: '\b(AETERNVM|ALVID|AVT|DEFINI|DESIGNA|DONICVM|DVM|ERVMPE|EST|ET|FACE|INVOCA|IN|MINVS|NON|PER|PLVS|REDI|RELIQVVM|SI|TVNC|VSQVE|VT|CVM)\b'
scope: keyword.control.centvrion
operators:
- match: '[+\-*/&]'
scope: keyword.operator.centvrion
identifiers:
- match: '[abcdefghiklmnopqrstvxyz_]+'
scope: variable.other.centvrion