(* 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 ;