62 lines · plain
1(* Data Inspection Language (DIL) definition - LLDB Debug Expressions *)2 3(* This is currently a subset of the final DIL Language, matching the current4 DIL implementation. *)5 6expression = unary_expression ;7 8unary_expression = postfix_expression9 | unary_operator expression ;10 11unary_operator = "*" | "&" | "+" | "-";12 13postfix_expression = primary_expression14 | postfix_expression "[" integer_literal "]"15 | postfix_expression "." id_expression16 | postfix_expression "->" id_expression ;17 18primary_expression = numeric_literal19 | boolean_literal20 | id_expression21 | "(" expression ")" ;22 23id_expression = unqualified_id24 | qualified_id25 | register ;26 27unqualified_id = identifier ;28 29qualified_id = ["::"] [nested_name_specifier] unqualified_id30 | ["::"] identifier ;31 32identifier = ? C99 Identifier ? ;33 34integer_literal = ? Integer constant: hexademical, decimal, octal, binary ? ;35 36numeric_literal = ? Integer constant: hexademical, decimal, octal, binary ?37 | ? Floating constant ? ;38 39boolean_literal = "true" | "false" ;40 41register = "$" ? Register name ? ;42 43nested_name_specifier = type_name "::"44 | namespace_name '::'45 | nested_name_specifier identifier "::" ;46 47type_name = class_name48 | enum_name49 | typedef_name;50 51class_name = identifier ;52 53enum_name = identifier ;54 55typedef_name = identifier ;56 57namespace_name = identifier ;58 59 60 61 62