WONKY



LOG | FILES | OVERVIEW


F diff --git a/src/frontend/parse/parse_declaration.c b/src/frontend/parse/parse_declaration.c --- a/src/frontend/parse/parse_declaration.c +++ b/src/frontend/parse/parse_declaration.c
hold_kw=kw_get(translation_data);
switch(hold_kw)
{
+ case KW_SIGNED:
+ chomp(translation_data);
+ if(ret->sign==TSIGN_NONE)
+ {
+ ret->sign=TSIGN_SIGNED;
+ }
+ else
+ {
+ push_translation_error("unexpected 'signed' in type",translation_data);
+ if(ret->sign==TSIGN_SIGNED)
+ push_translation_note("when it is unsigned",translation_data);
+ else
+ push_translation_note("when it is already signed",translation_data);
+ }
+ break;
+ case KW_UNSIGNED:
+ chomp(translation_data);
+ if(ret->sign==TSIGN_NONE)
+ {
+ ret->sign=TSIGN_UNSIGNED;
+ }
+ else
+ {
+ push_translation_error("unexpected 'unsigned' in type",translation_data);
+ if(ret->sign==TSIGN_SIGNED)
+ push_translation_note("when it is signed",translation_data);
+ else
+ push_translation_note("when it is already unsigned",translation_data);
+ }
+ break;
+
case KW_CONST:
chomp(translation_data);
ret->is_const=1;
F diff --git a/src/semantics/value/type.c b/src/semantics/value/type.c --- a/src/semantics/value/type.c +++ b/src/semantics/value/type.c
case KW_STRUCT:
case KW_UNION:
case KW_ENUM:
+ case KW_SIGNED:
+ case KW_UNSIGNED:
return 1;
default:
return 0;