; Scopes [ (bounded_quantification) (function_definition) (lambda) (module) (module_definition) (pcal_algorithm) (pcal_macro) (pcal_procedure) (pcal_with) (unbounded_quantification) ] @scope ; Definitions (constant_declaration (identifier) @definition.constant) (function_definition name: (identifier) @definition.function) (lambda (identifier) @definition.parameter) (operator_definition name: (identifier) @definition.function) (operator_definition parameter: (identifier) @definition.parameter) (pcal_macro_decl parameter: (identifier) @definition.parameter) (pcal_proc_var_decl (identifier) @definition.parameter) (pcal_var_decl (identifier) @definition.var) (pcal_with (identifier) @definition.parameter) (quantifier_bound (identifier) @definition.parameter) (quantifier_bound (tuple_of_identifiers (identifier) @definition.parameter)) (variable_declaration (identifier) @definition.var) ; Builtin variables (pcal_algorithm_body [ (_ (identifier_ref) @definition.var) (_ (_ (identifier_ref) @definition.var)) (_ (_ (_ (identifier_ref) @definition.var))) (_ (_ (_ (_ (identifier_ref) @definition.var)))) (_ (_ (_ (_ (_ (identifier_ref) @definition.var))))) ] (#vim-match? @definition.var "^(self|pc|stack)$") ) ; References (identifier_ref) @reference