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