diff options
author | Paul N. Hilfinger <hilfinger@adacore.com> | 2008-08-19 10:10:39 +0000 |
---|---|---|
committer | Paul N. Hilfinger <hilfinger@adacore.com> | 2008-08-19 10:10:39 +0000 |
commit | 690cc4ebad2e274c2a3fa2720bccbc7f7c4cbdc7 (patch) | |
tree | 83b927391ed9d52046f12180de2c0654c07b350b /gdb/ada-lex.l | |
parent | f6a4a0ab9ea8e672ffcc50bace7448efcc5d39b8 (diff) | |
download | gdb-690cc4ebad2e274c2a3fa2720bccbc7f7c4cbdc7.zip gdb-690cc4ebad2e274c2a3fa2720bccbc7f7c4cbdc7.tar.gz gdb-690cc4ebad2e274c2a3fa2720bccbc7f7c4cbdc7.tar.bz2 |
* ada-lang.c (discrete_type_high_bound,discrete_type_low_bound): Change
API to return LONGEST values rather than struct values.
(ada_evaluate_subexp): Change to use new API of discrete_type_low_bound
and discrete_type_high_bound.
(to_fixed_range_type): Create a range type in cases where
argument is base type and its limits are representable as ints.
(ada_is_modular_type): Correct so that base type must be integral.
* ada-lex.l (TRUEKEYWORD,FALSEKEYWORD): Make 'true' and 'false'
keywords when they appear alone, since we are phasing out
direct representation of these identifiers in ebugging data.
* ada-exp.y: Define 'true' and 'false' as primaries.
(type_boolean): New function.
(type_int,type_long,type_long_long,type_floattype_double)
(type_long_double): Remove uses of current_gdbarch for consistency
with type_boolean.
(write_int): Change comment to indicate that it might write boolean
constant as well.
* ada-typeprint.c (ada_print_type): Print '(false, true)' for boolean
type, since will no longer be represented as enumerated type in
debugging data.
* ada-valprint.c (print_optional_low_bound): Handle boolean case
as well.
Diffstat (limited to 'gdb/ada-lex.l')
-rw-r--r-- | gdb/ada-lex.l | 10 |
1 files changed, 10 insertions, 0 deletions
diff --git a/gdb/ada-lex.l b/gdb/ada-lex.l index cd6de8c..e4713a2 100644 --- a/gdb/ada-lex.l +++ b/gdb/ada-lex.l @@ -178,6 +178,16 @@ rem { return REM; } then { return THEN; } xor { return XOR; } + /* BOOLEAN "KEYWORDS" */ + + /* True and False are not keywords in Ada, but rather enumeration constants. + However, the boolean type is no longer represented as an enum, so True + and False are no longer defined in symbol tables. We compromise by + making them keywords (when bare). */ + +true { return TRUEKEYWORD; } +false { return FALSEKEYWORD; } + /* ATTRIBUTES */ {TICK}[a-zA-Z][a-zA-Z]+ { return processAttribute (yytext+1); } |