" Vim syntax file for Baba Yaga programming language " Language: Baba Yaga " Maintainer: Your Name " Latest Revision: 2024 if exists("b:current_syntax") finish endif " Keywords syn keyword babaKeyword when then is Ok Err syn keyword babaType Bool Int Float String List Table Result Number syn keyword babaOperator append set merge shape syn keyword babaIO io.out io.in io.emit io.listen syn keyword babaFunction map filter reduce pipe " Operators syn match babaOperator "->" syn match babaOperator "=>" syn match babaOperator "\.\." syn match babaOperator "=" syn match babaOperator ">" syn match babaOperator "<" syn match babaOperator ">=" syn match babaOperator "<=" syn match babaOperator "+" syn match babaOperator "-" syn match babaOperator "\*" syn match babaOperator "/" syn match babaOperator "%" syn match babaOperator ":" " Comments syn match babaComment "//.*$" syn region babaComment start="/\*" end="\*/" " Strings syn region babaString start='"' end='"' skip='\\"' " Numbers syn match babaNumber "\b\d\+\b" syn match babaFloat "\b\d\+\.\d\+\b" " Function definitions syn match babaFunctionDef "\b[a-zA-Z_][a-zA-Z0-9_]*\s*:" " Variables syn match babaVariable "\b[a-zA-Z_][a-zA-Z0-9_]*\b" " With blocks syn keyword babaWith with syn keyword babaWithRec rec syn region babaWithBlock start="\bwith\b" end="->" contains=babaWith,babaWithRec,babaKeyword,babaOperator,babaString,babaNumber,babaVariable,babaComment,babaWithBlockEntry syn region babaWithBlockEntry start="\b[a-zA-Z_][a-zA-Z0-9_]*\s*:" end=";" contains=babaVariable,babaOperator,babaString,babaNumber,babaComment,babaWhenExpr " When expressions syn region babaWhenExpr start="\bwhen\b" end=";" contains=babaKeyword,babaOperator,babaString,babaNumber,babaVariable " Anonymous functions syn region babaAnonFunc start="(" end=")" contains=babaVariable,babaOperator " Lists syn region babaList start="\[" end="\]" contains=ALL " Tables syn region babaTable start="{" end="}" contains=ALL " Wildcard syn match babaWildcard "\b_\b" " Define highlighting hi def link babaKeyword Keyword hi def link babaType Type hi def link babaOperator Operator hi def link babaIO PreProc hi def link babaFunction Function hi def link babaComment Comment hi def link babaString String hi def link babaNumber Number hi def link babaFloat Float hi def link babaFunctionDef Function hi def link babaVariable Identifier hi def link babaWith Keyword hi def link babaWithRec Keyword hi def link babaWithBlock Special hi def link babaWithBlockEntry Special hi def link babaWhenExpr Special hi def link babaAnonFunc Special hi def link babaList Special hi def link babaTable Special hi def link babaWildcard Constant let b:current_syntax = "baba"