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