blob: 9a05eb7b715818b52050c76f63d2ff6e58e33b96 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
|
; TLA+ scopes and definitions
[
(bounded_quantification)
(choose)
(function_definition)
(function_literal)
(lambda)
(let_in)
(module)
(module_definition)
(operator_definition)
(set_filter)
(set_map)
(unbounded_quantification)
] @scope
(choose (identifier) @definition.parameter)
(choose (tuple_of_identifiers (identifier) @definition.parameter))
(constant_declaration (identifier) @definition.constant)
(constant_declaration (operator_declaration name: (_) @definition.constant))
(function_definition
name: (identifier) @definition.function
(#set! "definition.function.scope" "parent"))
(lambda (identifier) @definition.parameter)
(module_definition
name: (_) @definition.import
(#set! "definition.import.scope" "parent"))
(module_definition parameter: (identifier) @definition.parameter)
(module_definition parameter: (operator_declaration name: (_) @definition.parameter))
(operator_definition
name: (_) @definition.macro
(#set! "definition.macro.scope" "parent"))
(operator_definition parameter: (identifier) @definition.parameter)
(operator_definition parameter: (operator_declaration name: (_) @definition.parameter))
(quantifier_bound (identifier) @definition.parameter)
(quantifier_bound (tuple_of_identifiers (identifier) @definition.parameter))
(unbounded_quantification (identifier) @definition.parameter)
(variable_declaration (identifier) @definition.var)
; Proof scopes and definitions
[
(non_terminal_proof)
(suffices_proof_step)
(theorem)
] @scope
(assume_prove (new (identifier) @definition.parameter))
(assume_prove (new (operator_declaration name: (_) @definition.parameter)))
(assumption name: (identifier) @definition.constant)
(pick_proof_step (identifier) @definition.parameter)
(take_proof_step (identifier) @definition.parameter)
(theorem
name: (identifier) @definition.constant
(#set! "definition.constant.scope" "parent"))
; PlusCal scopes and definitions
[
(pcal_algorithm)
(pcal_macro)
(pcal_procedure)
(pcal_with)
] @scope
(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)
; Built-in PlusCal 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
((prefix_op_symbol) @reference)
(bound_prefix_op symbol: (_) @reference)
((infix_op_symbol) @reference)
(bound_infix_op symbol: (_) @reference)
((postfix_op_symbol) @reference)
(bound_postfix_op symbol: (_) @reference)
(bound_nonfix_op symbol: (_) @reference)
|