Skip to content

Commit f275734

Browse files
committed
Vala: define built-in types as keywords
Signed-off-by: Masatake YAMATO <[email protected]>
1 parent cf8597f commit f275734

File tree

1 file changed

+51
-11
lines changed

1 file changed

+51
-11
lines changed

parsers/vala.c

Lines changed: 51 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -72,11 +72,7 @@ static kindDefinition ValaKinds [] = {
7272

7373
enum eKeywordId
7474
{
75-
KEYWORD_STRING,
76-
KEYWORD_INT,
77-
KEYWORD_DOUBLE,
78-
KEYWORD_FLOAT,
79-
KEYWORD_BOOL,
75+
KEYWORD_BUILTIN_TYPE,
8076
KEYWORD_VOID,
8177
KEYWORD_TYPE,
8278
KEYWORD_ABSTRACT,
@@ -150,13 +146,51 @@ enum eKeywordId
150146

151147
typedef int keywordId; /* to allow KEYWORD_NONE */
152148

153-
static const keywordTable ValaKeywordTable [] = {
154-
{ "string", KEYWORD_STRING },
155-
{ "int", KEYWORD_INT },
156-
{ "double", KEYWORD_DOUBLE },
157-
{ "float", KEYWORD_FLOAT },
158-
{ "bool", KEYWORD_BOOL },
149+
static struct keywordGroup valaBuiltInKeywordGroup = {
150+
.value = KEYWORD_BUILTIN_TYPE,
151+
.addingUnlessExisting = false,
152+
.keywords = {
153+
/* type:
154+
* value-type:
155+
* fundamental-struct-type:
156+
* integral-type: */
157+
"char",
158+
"uchar",
159+
"short",
160+
"ushort",
161+
"int",
162+
"uint",
163+
"long",
164+
"ulong",
165+
"size_t",
166+
"ssize_t",
167+
"int8",
168+
"uint8",
169+
"int16",
170+
"uint16",
171+
"int32",
172+
"uint32",
173+
"int64",
174+
"uint64",
175+
"unichar",
176+
/* type:
177+
* value-type:
178+
* fundamental-struct-type:
179+
* floating-point-type: */
180+
"float",
181+
"double",
182+
/* type:
183+
* value-type:
184+
* fundamental-struct-type: */
185+
"bool",
186+
/* type:
187+
* reference-type: */
188+
"string",
189+
NULL
190+
},
191+
};
159192

193+
static const keywordTable ValaKeywordTable [] = {
160194
{ "void", KEYWORD_VOID },
161195
{ "Type", KEYWORD_TYPE },
162196
{ "abstract", KEYWORD_ABSTRACT },
@@ -803,6 +837,11 @@ static void findValaTags (void)
803837
flashTokenBacklog (&valaTokenInfoClass);
804838
}
805839

840+
static void initialize (const langType language)
841+
{
842+
addKeywordGroup (&valaBuiltInKeywordGroup, language);
843+
}
844+
806845
extern parserDefinition* ValaParser (void)
807846
{
808847
static const char *const extensions [] = { "vala", NULL };
@@ -816,6 +855,7 @@ extern parserDefinition* ValaParser (void)
816855
def->useCork = true;
817856
def->requestAutomaticFQTag = true;
818857

858+
def->initialize = initialize,
819859
def->parser = findValaTags;
820860
return def;
821861
}

0 commit comments

Comments
 (0)