|  | (* Data Inspection Language (DIL) definition - LLDB Debug Expressions *) | 
|  |  | 
|  | (* This is currently a subset of the final DIL Language, matching the current | 
|  | DIL implementation. *) | 
|  |  | 
|  | expression = unary_expression ; | 
|  |  | 
|  | unary_expression = postfix_expression | 
|  | | unary_operator expression ; | 
|  |  | 
|  | unary_operator = "*" | "&" ; | 
|  |  | 
|  | postfix_expression = primary_expression | 
|  | | postfix_expression "[" integer_literal "]" | 
|  | | postfix_expression "." id_expression | 
|  | | postfix_expression "->" id_expression ; | 
|  |  | 
|  | primary_expression = id_expression | 
|  | | "(" expression ")" ; | 
|  |  | 
|  | id_expression = unqualified_id | 
|  | | qualified_id | 
|  | | register ; | 
|  |  | 
|  | unqualified_id = identifier ; | 
|  |  | 
|  | qualified_id = ["::"] [nested_name_specifier] unqualified_id | 
|  | | ["::"] identifier ; | 
|  |  | 
|  | identifier = ? C99 Identifier ? ; | 
|  |  | 
|  | integer_literal = ? Integer constant: hexademical, decimal, octal, binary ? ; | 
|  |  | 
|  | register = "$" ? Register name ? ; | 
|  |  | 
|  | nested_name_specifier = type_name "::" | 
|  | | namespace_name '::' | 
|  | | nested_name_specifier identifier "::" ; | 
|  |  | 
|  | type_name = class_name | 
|  | | enum_name | 
|  | | typedef_name; | 
|  |  | 
|  | class_name = identifier ; | 
|  |  | 
|  | enum_name = identifier ; | 
|  |  | 
|  | typedef_name = identifier ; | 
|  |  | 
|  | namespace_name = identifier ; | 
|  |  | 
|  |  | 
|  |  | 
|  |  |