diff --git a/nodes/PrimitiveTypeNode.cc b/nodes/PrimitiveTypeNode.cc index f0d2822..15587e7 100644 --- a/nodes/PrimitiveTypeNode.cc +++ b/nodes/PrimitiveTypeNode.cc @@ -8,28 +8,30 @@ string PrimitiveTypeNode::getString() { switch (m_integer) { - case BYTE: - return "int8_t"; - case UBYTE: - return "uint8_t"; - case CHAR: - return "char"; - case WCHAR: - return "wchar_t"; - case SHORT: - return "int16_t"; - case USHORT: - return "uint16_t"; - case INT: - return "int32_t"; - case UINT: - return "uint32_t"; - case LONG: - return "int64_t"; - case ULONG: - return "uint64_t"; - default: - cerr << "Error: Unknown primitive type " << m_integer << endl; - return ""; + case BOOL: + return "uint8_t"; + case BYTE: + return "int8_t"; + case UBYTE: + return "uint8_t"; + case CHAR: + return "char"; + case WCHAR: + return "wchar_t"; + case SHORT: + return "int16_t"; + case USHORT: + return "uint16_t"; + case INT: + return "int32_t"; + case UINT: + return "uint32_t"; + case LONG: + return "int64_t"; + case ULONG: + return "uint64_t"; + default: + cerr << "Error: Unknown primitive type " << m_integer << endl; + return ""; } } diff --git a/parser/parser.lex b/parser/parser.lex index e04c632..8ffabff 100644 --- a/parser/parser.lex +++ b/parser/parser.lex @@ -86,6 +86,7 @@ static uint64_t parseInt(const char * text, int base) } /* primitive types */ +bool return BOOL; byte return BYTE; ubyte return UBYTE; char return CHAR; @@ -101,10 +102,12 @@ double return DOUBLE; /* keywords */ c return C; +false return FALSE; import return IMPORT; module return MODULE; return return RETURN; struct return STRUCT; +true return TRUE; /* identifiers */ [a-zA-Z_][a-zA-Z_0-9]* { diff --git a/parser/parser.yy b/parser/parser.yy index 7bf308f..b9ce280 100644 --- a/parser/parser.yy +++ b/parser/parser.yy @@ -64,6 +64,7 @@ static YYSTYPE parse_result; %token STRING_LITERAL; /* primitive types */ +%token BOOL; %token BYTE; %token UBYTE; %token CHAR; @@ -79,10 +80,12 @@ static YYSTYPE parse_result; /* keywords */ %token C; +%token FALSE; %token IMPORT; %token MODULE; %token RETURN; %token STRUCT; +%token TRUE; /* identifiers */ %token IDENTIFIER;