added bool type

git-svn-id: svn://anubis/jtlc/trunk@20 f5bc74b8-7b62-4e90-9214-7121d538519f
This commit is contained in:
josh 2010-01-13 22:58:07 +00:00
parent ba841d3bcf
commit 3301142147
3 changed files with 31 additions and 23 deletions

View File

@ -8,28 +8,30 @@ string PrimitiveTypeNode::getString()
{ {
switch (m_integer) switch (m_integer)
{ {
case BYTE: case BOOL:
return "int8_t"; return "uint8_t";
case UBYTE: case BYTE:
return "uint8_t"; return "int8_t";
case CHAR: case UBYTE:
return "char"; return "uint8_t";
case WCHAR: case CHAR:
return "wchar_t"; return "char";
case SHORT: case WCHAR:
return "int16_t"; return "wchar_t";
case USHORT: case SHORT:
return "uint16_t"; return "int16_t";
case INT: case USHORT:
return "int32_t"; return "uint16_t";
case UINT: case INT:
return "uint32_t"; return "int32_t";
case LONG: case UINT:
return "int64_t"; return "uint32_t";
case ULONG: case LONG:
return "uint64_t"; return "int64_t";
default: case ULONG:
cerr << "Error: Unknown primitive type " << m_integer << endl; return "uint64_t";
return "<UNKNOWN-TYPE>"; default:
cerr << "Error: Unknown primitive type " << m_integer << endl;
return "<UNKNOWN-TYPE>";
} }
} }

View File

@ -86,6 +86,7 @@ static uint64_t parseInt(const char * text, int base)
} }
/* primitive types */ /* primitive types */
bool return BOOL;
byte return BYTE; byte return BYTE;
ubyte return UBYTE; ubyte return UBYTE;
char return CHAR; char return CHAR;
@ -101,10 +102,12 @@ double return DOUBLE;
/* keywords */ /* keywords */
c return C; c return C;
false return FALSE;
import return IMPORT; import return IMPORT;
module return MODULE; module return MODULE;
return return RETURN; return return RETURN;
struct return STRUCT; struct return STRUCT;
true return TRUE;
/* identifiers */ /* identifiers */
[a-zA-Z_][a-zA-Z_0-9]* { [a-zA-Z_][a-zA-Z_0-9]* {

View File

@ -64,6 +64,7 @@ static YYSTYPE parse_result;
%token STRING_LITERAL; %token STRING_LITERAL;
/* primitive types */ /* primitive types */
%token BOOL;
%token BYTE; %token BYTE;
%token UBYTE; %token UBYTE;
%token CHAR; %token CHAR;
@ -79,10 +80,12 @@ static YYSTYPE parse_result;
/* keywords */ /* keywords */
%token C; %token C;
%token FALSE;
%token IMPORT; %token IMPORT;
%token MODULE; %token MODULE;
%token RETURN; %token RETURN;
%token STRUCT; %token STRUCT;
%token TRUE;
/* identifiers */ /* identifiers */
%token IDENTIFIER; %token IDENTIFIER;