(* 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 = numeric_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 ? ;

integer_literal = ? Integer constant: hexademical, decimal, octal, binary ? ;

numeric_literal = ? Integer constant: hexademical, decimal, octal, binary ?
                | ? Floating constant ? ;

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 ;




