xref: /freebsd/contrib/llvm-project/lldb/docs/dil-expr-lang.ebnf (revision 700637cbb5e582861067a11aaca4d053546871d2)
1(* Data Inspection Language (DIL) definition - LLDB Debug Expressions *)
2
3(* This is currently a subset of the final DIL Language, matching the current
4   DIL implementation. *)
5
6expression = unary_expression ;
7
8unary_expression = postfix_expression
9                 | unary_operator expression ;
10
11unary_operator = "*" | "&" ;
12
13postfix_expression = primary_expression
14                   | postfix_expression "[" integer_literal "]"
15                   | postfix_expression "." id_expression
16                   | postfix_expression "->" id_expression ;
17
18primary_expression = id_expression
19                   | "(" expression ")" ;
20
21id_expression = unqualified_id
22              | qualified_id
23              | register ;
24
25unqualified_id = identifier ;
26
27qualified_id = ["::"] [nested_name_specifier] unqualified_id
28             | ["::"] identifier ;
29
30identifier = ? C99 Identifier ? ;
31
32integer_literal = ? Integer constant: hexademical, decimal, octal, binary ? ;
33
34register = "$" ? Register name ? ;
35
36nested_name_specifier = type_name "::"
37                      | namespace_name '::'
38                      | nested_name_specifier identifier "::" ;
39
40type_name = class_name
41          | enum_name
42          | typedef_name;
43
44class_name = identifier ;
45
46enum_name = identifier ;
47
48typedef_name = identifier ;
49
50namespace_name = identifier ;
51
52
53
54
55