cmtice | 46e2c07 | 2025-04-03 21:39:30 -0700 | [diff] [blame] | 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 | |
Ilia Kuklin | d637038 | 2025-04-29 21:29:52 +0500 | [diff] [blame^] | 6 | expression = unary_expression ; |
| 7 | |
| 8 | unary_expression = unary_operator expression |
| 9 | | primary_expression ; |
| 10 | |
| 11 | unary_operator = "*" | "&" ; |
cmtice | 46e2c07 | 2025-04-03 21:39:30 -0700 | [diff] [blame] | 12 | |
| 13 | primary_expression = id_expression |
| 14 | | "(" expression ")"; |
| 15 | |
| 16 | id_expression = unqualified_id |
| 17 | | qualified_id |
| 18 | | register ; |
| 19 | |
| 20 | unqualified_id = identifier ; |
| 21 | |
| 22 | qualified_id = ["::"] [nested_name_specifier] unqualified_id |
| 23 | | ["::"] identifier ; |
| 24 | |
| 25 | identifier = ? C99 Identifier ? ; |
| 26 | |
| 27 | register = "$" ? Register name ? ; |
| 28 | |
| 29 | nested_name_specifier = type_name "::" |
| 30 | | namespace_name '::' |
| 31 | | nested_name_specifier identifier "::" ; |
| 32 | |
| 33 | type_name = class_name |
| 34 | | enum_name |
| 35 | | typedef_name; |
| 36 | |
| 37 | class_name = identifier ; |
| 38 | |
| 39 | enum_name = identifier ; |
| 40 | |
| 41 | typedef_name = identifier ; |
| 42 | |
| 43 | namespace_name = identifier ; |
| 44 | |
| 45 | |
| 46 | |
| 47 | |