2014-03-29 21:07:19 -07:00
|
|
|
|
|
|
|
#line 1 "lib/eolian/eo_lexer.rl"
|
|
|
|
#include <stdio.h>
|
|
|
|
#include <stdlib.h>
|
|
|
|
#include <Eina.h>
|
|
|
|
|
|
|
|
#include "Eolian.h"
|
|
|
|
#
|
|
|
|
#include "eo_lexer.h"
|
|
|
|
#include "eolian_database.h"
|
|
|
|
|
|
|
|
static int _eo_tokenizer_log_dom = -1;
|
|
|
|
#ifdef CRITICAL
|
|
|
|
#undef CRITICAL
|
|
|
|
#endif
|
|
|
|
#define CRITICAL(...) EINA_LOG_DOM_CRIT(_eo_tokenizer_log_dom, __VA_ARGS__)
|
|
|
|
|
|
|
|
#ifdef ERR
|
|
|
|
#undef ERR
|
|
|
|
#endif
|
|
|
|
#define ERR(...) EINA_LOG_DOM_ERR(_eo_tokenizer_log_dom, __VA_ARGS__)
|
|
|
|
|
|
|
|
#ifdef WRN
|
|
|
|
#undef WRN
|
|
|
|
#endif
|
|
|
|
#define WRN(...) EINA_LOG_DOM_WARN(_eo_tokenizer_log_dom, __VA_ARGS__)
|
|
|
|
|
2014-04-13 21:56:45 -07:00
|
|
|
#define INF_ENABLED EINA_FALSE
|
2014-03-29 21:07:19 -07:00
|
|
|
#ifdef INF
|
|
|
|
#undef INF
|
|
|
|
#endif
|
2014-04-13 21:56:45 -07:00
|
|
|
#define INF(...) if (INF_ENABLED) EINA_LOG_DOM_INFO(_eo_tokenizer_log_dom, __VA_ARGS__)
|
2014-03-29 21:07:19 -07:00
|
|
|
|
2014-04-13 21:56:45 -07:00
|
|
|
#define DBG_ENABLED EINA_FALSE
|
2014-03-29 21:07:19 -07:00
|
|
|
#ifdef DBG
|
|
|
|
#undef DBG
|
|
|
|
#endif
|
2014-04-13 21:56:45 -07:00
|
|
|
#define DBG(...) if (DBG_ENABLED) EINA_LOG_DOM_DBG(_eo_tokenizer_log_dom, __VA_ARGS__)
|
2014-03-29 21:07:19 -07:00
|
|
|
|
2014-04-03 06:20:58 -07:00
|
|
|
#define FUNC_PUBLIC 0
|
|
|
|
#define FUNC_PROTECTED 1
|
|
|
|
|
2014-03-29 21:07:19 -07:00
|
|
|
static int _init_counter = 0;
|
|
|
|
|
|
|
|
int
|
|
|
|
eo_tokenizer_init()
|
|
|
|
{
|
|
|
|
if (!_init_counter)
|
|
|
|
{
|
|
|
|
eina_init();
|
|
|
|
eina_log_color_disable_set(EINA_FALSE);
|
|
|
|
_eo_tokenizer_log_dom = eina_log_domain_register("eo_toknz", EINA_COLOR_CYAN);
|
|
|
|
}
|
|
|
|
return _init_counter++;
|
|
|
|
}
|
|
|
|
|
|
|
|
int
|
|
|
|
eo_tokenizer_shutdown()
|
|
|
|
{
|
|
|
|
if (_init_counter <= 0) return 0;
|
|
|
|
_init_counter--;
|
|
|
|
if (!_init_counter)
|
|
|
|
{
|
|
|
|
eina_log_domain_unregister(_eo_tokenizer_log_dom);
|
|
|
|
_eo_tokenizer_log_dom = -1;
|
|
|
|
eina_shutdown();
|
|
|
|
}
|
|
|
|
return _init_counter;
|
|
|
|
}
|
|
|
|
|
|
|
|
static void
|
|
|
|
_eo_tokenizer_abort(Eo_Tokenizer *toknz,
|
|
|
|
const char *file, const char* fct, int line,
|
|
|
|
const char *fmt, ...)
|
|
|
|
{
|
|
|
|
va_list ap;
|
|
|
|
va_start (ap, fmt);
|
|
|
|
eina_log_vprint(_eo_tokenizer_log_dom, EINA_LOG_LEVEL_ERR,
|
|
|
|
file, fct, line, fmt, ap);
|
|
|
|
va_end(ap);
|
|
|
|
fprintf(stderr, "File:%s\n toknz[%d] n:%d l:%d p:%d pe:%d ts:%s te:%s act:%d\n",
|
|
|
|
toknz->source,
|
|
|
|
toknz->cs, toknz->current_nesting, toknz->current_line,
|
|
|
|
(int)(toknz->p - toknz->buf), (int)(toknz->pe - toknz->buf),
|
|
|
|
toknz->ts, toknz->te, toknz->act);
|
|
|
|
exit(EXIT_FAILURE);
|
|
|
|
}
|
|
|
|
#define ABORT(toknz, ...) \
|
|
|
|
_eo_tokenizer_abort(toknz, __FILE__, __FUNCTION__, __LINE__, __VA_ARGS__);
|
|
|
|
|
|
|
|
static void _eo_tokenizer_normalize_buf(char *buf)
|
|
|
|
{
|
|
|
|
int c;
|
|
|
|
char *s, *d;
|
|
|
|
Eina_Bool in_space = EINA_TRUE;
|
|
|
|
Eina_Bool in_newline = EINA_FALSE;
|
|
|
|
|
|
|
|
/* ' '+ -> ' '
|
|
|
|
* '\n' ' '* '*' ' '* -> '\n'
|
|
|
|
*/
|
|
|
|
for (s = buf, d = buf; *s != '\0'; s++)
|
|
|
|
{
|
|
|
|
c = *s;
|
|
|
|
*d = c;
|
|
|
|
|
|
|
|
if (!in_space || (c != ' '))
|
|
|
|
d++;
|
|
|
|
|
|
|
|
if (c == ' ')
|
|
|
|
in_space = EINA_TRUE;
|
|
|
|
else
|
|
|
|
in_space = EINA_FALSE;
|
|
|
|
|
|
|
|
if (c == '\n')
|
|
|
|
{
|
|
|
|
in_newline = EINA_TRUE;
|
|
|
|
in_space = EINA_TRUE;
|
|
|
|
}
|
|
|
|
else if (in_newline && c == '*' )
|
|
|
|
{
|
|
|
|
in_space = EINA_TRUE;
|
|
|
|
in_newline = EINA_FALSE;
|
|
|
|
d--;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
/* ' '+$ -> $ */
|
|
|
|
d--;
|
|
|
|
while (*d == ' ') d--;
|
|
|
|
d++;
|
|
|
|
if (d < buf) return;
|
|
|
|
*d = '\0';
|
|
|
|
}
|
|
|
|
|
|
|
|
static const char*
|
|
|
|
_eo_tokenizer_token_get(Eo_Tokenizer *toknz, char *p)
|
|
|
|
{
|
|
|
|
if (toknz->saved.tok == NULL) ABORT(toknz, "toknz->saved.tok is NULL");
|
|
|
|
char d[BUFSIZE];
|
|
|
|
int l = (p - toknz->saved.tok);
|
|
|
|
memcpy(d, toknz->saved.tok, l);
|
|
|
|
d[l] = '\0';
|
|
|
|
_eo_tokenizer_normalize_buf(d);
|
|
|
|
toknz->saved.tok = NULL;
|
|
|
|
DBG("token : >%s<", d);
|
|
|
|
return eina_stringshare_add(d);
|
|
|
|
}
|
|
|
|
|
|
|
|
static Eo_Class_Def*
|
|
|
|
_eo_tokenizer_class_get(Eo_Tokenizer *toknz, char *p)
|
|
|
|
{
|
|
|
|
Eo_Class_Def *kls = calloc(1, sizeof(Eo_Class_Def));
|
|
|
|
if (kls == NULL) ABORT(toknz, "calloc Eo_Class_Def failure");
|
|
|
|
|
|
|
|
kls->name = _eo_tokenizer_token_get(toknz, p);
|
|
|
|
|
|
|
|
return kls;
|
|
|
|
}
|
|
|
|
|
|
|
|
static Eo_Property_Def*
|
|
|
|
_eo_tokenizer_property_get(Eo_Tokenizer *toknz, char *p)
|
|
|
|
{
|
2014-04-03 06:20:58 -07:00
|
|
|
Eo_Property_Def *prop = NULL;
|
|
|
|
if (!strncmp(toknz->saved.tok, "protected ", 10))
|
|
|
|
{
|
|
|
|
toknz->saved.tok += 10;
|
|
|
|
toknz->tmp.fscope = FUNC_PROTECTED;
|
|
|
|
}
|
|
|
|
else
|
|
|
|
{
|
|
|
|
prop = calloc(1, sizeof(Eo_Property_Def));
|
|
|
|
if (prop == NULL) ABORT(toknz, "calloc Eo_Property_Def failure");
|
2014-03-29 21:07:19 -07:00
|
|
|
|
2014-04-03 06:20:58 -07:00
|
|
|
prop->name = _eo_tokenizer_token_get(toknz, p);
|
|
|
|
prop->scope = toknz->tmp.fscope;
|
|
|
|
toknz->tmp.fscope = FUNC_PUBLIC;
|
|
|
|
}
|
2014-03-29 21:07:19 -07:00
|
|
|
|
|
|
|
return prop;
|
|
|
|
}
|
|
|
|
|
|
|
|
static Eo_Method_Def*
|
|
|
|
_eo_tokenizer_method_get(Eo_Tokenizer *toknz, char *p)
|
|
|
|
{
|
2014-04-03 06:20:58 -07:00
|
|
|
Eo_Method_Def *meth = NULL;
|
|
|
|
if (!strncmp(toknz->saved.tok, "protected ", 10))
|
|
|
|
{
|
|
|
|
toknz->saved.tok += 10;
|
|
|
|
toknz->tmp.fscope = FUNC_PROTECTED;
|
|
|
|
}
|
|
|
|
else
|
|
|
|
{
|
|
|
|
meth = calloc(1, sizeof(Eo_Method_Def));
|
|
|
|
if (meth == NULL) ABORT(toknz, "calloc Eo_Method_Def failure");
|
2014-03-29 21:07:19 -07:00
|
|
|
|
2014-04-03 06:20:58 -07:00
|
|
|
meth->name = _eo_tokenizer_token_get(toknz, p);
|
|
|
|
meth->scope = toknz->tmp.fscope;
|
|
|
|
toknz->tmp.fscope = FUNC_PUBLIC;
|
|
|
|
}
|
2014-03-29 21:07:19 -07:00
|
|
|
|
|
|
|
return meth;
|
|
|
|
}
|
|
|
|
|
|
|
|
static Eo_Param_Def*
|
|
|
|
_eo_tokenizer_param_get(Eo_Tokenizer *toknz, char *p)
|
|
|
|
{
|
|
|
|
char *s;
|
|
|
|
|
|
|
|
Eo_Param_Def *param = calloc(1, sizeof(Eo_Param_Def));
|
|
|
|
if (param == NULL) ABORT(toknz, "calloc Eo_Param_Def failure");
|
|
|
|
|
|
|
|
/* The next code part tries to identify the different tags of the
|
|
|
|
parameter.
|
|
|
|
First, we set the ';' to '\0', to search only inside this section.
|
|
|
|
We then strstr the different tags and if found, we update the internal
|
|
|
|
flag and clear the zone of the text. In this way, during the
|
|
|
|
determination of the type/variable, we will not be disturbed by the
|
|
|
|
flags.
|
|
|
|
We have to put back the ';' at the end.
|
|
|
|
*/
|
|
|
|
*p = '\0';
|
|
|
|
s = strstr(toknz->saved.tok, "@nonull");
|
|
|
|
if (s)
|
|
|
|
{
|
|
|
|
param->nonull = EINA_TRUE;
|
|
|
|
memset(s, ' ', 7);
|
|
|
|
}
|
|
|
|
s = strstr(toknz->saved.tok, "@own");
|
|
|
|
if (s)
|
|
|
|
{
|
|
|
|
param->own = EINA_TRUE;
|
|
|
|
memset(s, ' ', 4);
|
|
|
|
}
|
|
|
|
*p = ';';
|
|
|
|
s = p - 1; /* Don't look at the character ';' */
|
|
|
|
/* Remove any space between the param name and ';'/@nonull
|
|
|
|
* This loop fixes the case where "char *name ;" becomes the type of the param.
|
|
|
|
*/
|
|
|
|
while (*s == ' ') s--;
|
|
|
|
for (; s >= toknz->saved.tok; s--)
|
|
|
|
{
|
|
|
|
if ((*s == ' ') || (*s == '*'))
|
|
|
|
break;
|
|
|
|
}
|
|
|
|
|
|
|
|
if (s == toknz->saved.tok)
|
|
|
|
ABORT(toknz, "wrong parameter: %s", _eo_tokenizer_token_get(toknz, p));
|
|
|
|
s++;
|
|
|
|
|
|
|
|
param->way = PARAM_IN;
|
|
|
|
if (strncmp(toknz->saved.tok, "@in ", 4) == 0)
|
|
|
|
{
|
|
|
|
toknz->saved.tok += 3;
|
|
|
|
param->way = PARAM_IN;
|
|
|
|
}
|
|
|
|
else if (strncmp(toknz->saved.tok, "@out ", 5) == 0)
|
|
|
|
{
|
|
|
|
toknz->saved.tok += 4;
|
|
|
|
param->way = PARAM_OUT;
|
|
|
|
}
|
|
|
|
else if (strncmp(toknz->saved.tok, "@inout ", 7) == 0)
|
|
|
|
{
|
|
|
|
toknz->saved.tok += 6;
|
|
|
|
param->way = PARAM_INOUT;
|
|
|
|
}
|
|
|
|
|
|
|
|
param->type = _eo_tokenizer_token_get(toknz, s);
|
|
|
|
|
|
|
|
toknz->saved.tok = s;
|
|
|
|
param->name = _eo_tokenizer_token_get(toknz, p);
|
|
|
|
|
|
|
|
return param;
|
|
|
|
}
|
|
|
|
|
|
|
|
static Eo_Ret_Def*
|
|
|
|
_eo_tokenizer_return_get(Eo_Tokenizer *toknz, char *p)
|
|
|
|
{
|
|
|
|
char *s;
|
|
|
|
|
|
|
|
Eo_Ret_Def *ret = calloc(1, sizeof(Eo_Ret_Def));
|
|
|
|
if (ret == NULL) ABORT(toknz, "calloc Eo_Ret_Def failure");
|
|
|
|
|
|
|
|
*p = '\0';
|
|
|
|
s = strstr(toknz->saved.tok, "@warn_unused");
|
|
|
|
if (s)
|
|
|
|
{
|
|
|
|
ret->warn_unused = EINA_TRUE;
|
|
|
|
memset(s, ' ', 12);
|
|
|
|
}
|
|
|
|
s = strstr(toknz->saved.tok, "@own");
|
|
|
|
if (s)
|
|
|
|
{
|
|
|
|
ret->own = EINA_TRUE;
|
|
|
|
memset(s, ' ', 4);
|
|
|
|
}
|
|
|
|
s = strchr(toknz->saved.tok, '(');
|
|
|
|
if (s)
|
|
|
|
{
|
|
|
|
char *ret_val;
|
|
|
|
char *end = strchr(s, ')');
|
|
|
|
if (!end)
|
|
|
|
ABORT(toknz, "wrong syntax (missing ')'): %s",
|
|
|
|
_eo_tokenizer_token_get(toknz, p));
|
|
|
|
/* Current values in s and end have to be changed to ' ' to not disturb the next steps (type extraction) */
|
|
|
|
*s++ = ' ';
|
|
|
|
while (*s == ' ') s++;
|
|
|
|
*end-- = ' ';
|
|
|
|
while (end > s && *end == ' ') end--;
|
|
|
|
if (end < s)
|
|
|
|
ABORT(toknz, "empty default return value: %s",
|
|
|
|
_eo_tokenizer_token_get(toknz, p));
|
|
|
|
ret_val = malloc(end - s + 2); /* string + '\0' */
|
|
|
|
memcpy(ret_val, s, end - s + 1);
|
|
|
|
ret_val[end - s + 1] = '\0';
|
|
|
|
ret->dflt_ret_val = ret_val;
|
|
|
|
memset(s, ' ', end - s + 1);
|
|
|
|
}
|
|
|
|
*p = ';';
|
|
|
|
s = p - 1; /* Don't look at the character ';' */
|
|
|
|
/* Remove any space between the param name and ';'
|
|
|
|
* This loop fixes the case where "char *name ;" becomes the type of the param.
|
|
|
|
*/
|
|
|
|
while (*s == ' ') s--;
|
|
|
|
|
|
|
|
if (s == toknz->saved.tok)
|
|
|
|
ABORT(toknz, "wrong parameter: %s", _eo_tokenizer_token_get(toknz, p));
|
|
|
|
s++;
|
|
|
|
|
|
|
|
ret->type = _eo_tokenizer_token_get(toknz, s);
|
|
|
|
|
|
|
|
return ret;
|
|
|
|
}
|
|
|
|
|
|
|
|
static Eo_Accessor_Param*
|
|
|
|
_eo_tokenizer_accessor_param_get(Eo_Tokenizer *toknz, char *p)
|
|
|
|
{
|
|
|
|
Eo_Accessor_Param *param = calloc(1, sizeof(Eo_Accessor_Param));
|
|
|
|
if (param == NULL) ABORT(toknz, "calloc Eo_Accessor_Param failure");
|
|
|
|
|
|
|
|
/* Remove the colon and spaces - we just need the param name */
|
|
|
|
while (*p == ':') p--;
|
|
|
|
while (*p == ' ') p--;
|
|
|
|
param->name = _eo_tokenizer_token_get(toknz, p);
|
|
|
|
|
|
|
|
return param;
|
|
|
|
}
|
|
|
|
|
|
|
|
static Eo_Accessor_Def *
|
|
|
|
_eo_tokenizer_accessor_get(Eo_Tokenizer *toknz, Eo_Accessor_Type type)
|
|
|
|
{
|
|
|
|
Eo_Accessor_Def *accessor = calloc(1, sizeof(Eo_Accessor_Def));
|
|
|
|
if (accessor == NULL) ABORT(toknz, "calloc Eo_Accessor_Def failure");
|
|
|
|
|
|
|
|
accessor->type = type;
|
|
|
|
|
|
|
|
return accessor;
|
|
|
|
}
|
|
|
|
|
|
|
|
static Eo_Event_Def*
|
|
|
|
_eo_tokenizer_event_get(Eo_Tokenizer *toknz, char *p)
|
|
|
|
{
|
|
|
|
Eo_Event_Def *sgn = calloc(1, sizeof(Eo_Event_Def));
|
|
|
|
if (sgn == NULL) ABORT(toknz, "calloc Eo_Event_Def failure");
|
|
|
|
|
|
|
|
sgn->name = _eo_tokenizer_token_get(toknz, p);
|
|
|
|
|
|
|
|
return sgn;
|
|
|
|
}
|
|
|
|
|
|
|
|
static Eo_Implement_Def*
|
|
|
|
_eo_tokenizer_implement_get(Eo_Tokenizer *toknz, char *p)
|
|
|
|
{
|
|
|
|
Eo_Implement_Def *impl = calloc(1, sizeof(Eo_Implement_Def));
|
|
|
|
if (impl == NULL) ABORT(toknz, "calloc Eo_Implement_Def failure");
|
|
|
|
|
|
|
|
impl->meth_name = _eo_tokenizer_token_get(toknz, p);
|
|
|
|
|
|
|
|
return impl;
|
|
|
|
}
|
|
|
|
|
|
|
|
|
2014-04-13 21:56:45 -07:00
|
|
|
#line 455 "lib/eolian/eo_lexer.rl"
|
2014-03-29 21:07:19 -07:00
|
|
|
|
|
|
|
|
|
|
|
|
2014-04-13 21:56:45 -07:00
|
|
|
#line 386 "lib/eolian/eo_lexer.c"
|
2014-03-29 21:07:19 -07:00
|
|
|
static const char _eo_tokenizer_actions[] = {
|
|
|
|
0, 1, 0, 1, 2, 1, 6, 1,
|
|
|
|
10, 1, 15, 1, 16, 1, 17, 1,
|
|
|
|
18, 1, 19, 1, 20, 1, 21, 1,
|
|
|
|
22, 1, 23, 1, 24, 1, 25, 1,
|
|
|
|
26, 1, 27, 1, 28, 1, 29, 1,
|
|
|
|
30, 1, 31, 1, 32, 1, 33, 1,
|
|
|
|
34, 1, 35, 1, 36, 1, 37, 1,
|
2014-04-02 04:04:12 -07:00
|
|
|
38, 1, 39, 1, 40, 1, 41, 1,
|
2014-03-29 21:07:19 -07:00
|
|
|
44, 1, 45, 1, 46, 1, 47, 1,
|
|
|
|
48, 1, 49, 1, 50, 1, 51, 1,
|
|
|
|
52, 1, 53, 1, 54, 1, 55, 1,
|
|
|
|
56, 1, 57, 1, 58, 1, 59, 1,
|
|
|
|
60, 1, 61, 1, 62, 1, 63, 1,
|
|
|
|
64, 1, 65, 1, 66, 1, 67, 1,
|
|
|
|
68, 1, 69, 1, 70, 1, 71, 1,
|
|
|
|
72, 1, 73, 1, 74, 1, 75, 1,
|
|
|
|
76, 1, 77, 1, 78, 1, 79, 1,
|
2014-04-02 04:04:12 -07:00
|
|
|
80, 1, 81, 1, 82, 1, 85, 1,
|
2014-03-29 21:07:19 -07:00
|
|
|
86, 1, 87, 1, 88, 1, 89, 1,
|
|
|
|
90, 1, 91, 1, 92, 1, 93, 1,
|
|
|
|
94, 1, 95, 1, 96, 1, 97, 1,
|
|
|
|
98, 1, 99, 1, 100, 1, 101, 1,
|
|
|
|
102, 1, 103, 1, 104, 1, 105, 1,
|
|
|
|
106, 1, 107, 1, 108, 1, 109, 1,
|
|
|
|
110, 1, 111, 1, 112, 1, 113, 1,
|
|
|
|
114, 1, 115, 1, 116, 1, 117, 1,
|
|
|
|
118, 1, 119, 1, 120, 1, 121, 1,
|
2014-04-02 04:04:12 -07:00
|
|
|
122, 1, 123, 1, 124, 1, 125, 2,
|
|
|
|
0, 41, 2, 0, 52, 2, 0, 61,
|
|
|
|
2, 0, 72, 2, 0, 81, 2, 0,
|
|
|
|
93, 2, 0, 102, 2, 0, 120, 2,
|
|
|
|
4, 47, 2, 5, 42, 2, 6, 2,
|
|
|
|
2, 7, 43, 2, 8, 56, 2, 10,
|
|
|
|
0, 2, 10, 73, 2, 12, 88, 2,
|
|
|
|
13, 83, 2, 14, 84, 2, 15, 0,
|
|
|
|
2, 15, 94, 2, 16, 0, 2, 17,
|
|
|
|
0, 2, 17, 121, 2, 18, 0, 2,
|
|
|
|
19, 0, 2, 20, 0, 2, 20, 2,
|
|
|
|
2, 24, 0, 2, 25, 0, 2, 25,
|
|
|
|
2, 2, 26, 0, 2, 28, 0, 2,
|
|
|
|
29, 0, 2, 29, 2, 2, 36, 0,
|
|
|
|
2, 36, 121, 2, 39, 1, 2, 39,
|
|
|
|
2, 2, 39, 3, 2, 39, 9, 2,
|
|
|
|
39, 11
|
2014-03-29 21:07:19 -07:00
|
|
|
};
|
|
|
|
|
|
|
|
static const short _eo_tokenizer_key_offsets[] = {
|
|
|
|
0, 2, 5, 6, 7, 8, 9, 10,
|
2014-03-31 01:31:33 -07:00
|
|
|
11, 12, 15, 22, 37, 41, 49, 54,
|
|
|
|
58, 70, 75, 82, 83, 84, 85, 88,
|
|
|
|
89, 90, 91, 92, 93, 94, 95, 98,
|
|
|
|
99, 100, 101, 104, 107, 109, 112, 123,
|
|
|
|
125, 128, 129, 133, 140, 147, 159, 170,
|
|
|
|
182, 194, 206, 218, 229, 237, 245, 257,
|
|
|
|
269, 281, 293, 304, 312, 326, 341, 345,
|
|
|
|
346, 347, 357, 359, 362, 364, 367, 368,
|
|
|
|
380, 384, 385, 386, 396, 398, 401, 403,
|
|
|
|
406, 407, 408, 412, 413, 414, 418, 419,
|
|
|
|
423, 424, 425, 426, 427, 431, 433, 436,
|
2014-04-03 06:20:58 -07:00
|
|
|
437, 451, 455, 466, 477, 480, 482, 485,
|
|
|
|
496, 498, 501, 502, 503, 504, 505, 506,
|
|
|
|
507, 508, 509, 510, 513, 520, 528, 529,
|
|
|
|
530, 531, 532, 536, 537, 538, 539, 540,
|
|
|
|
543, 550, 564, 579, 583, 584, 585, 595,
|
|
|
|
597, 600, 602, 605, 606, 620, 624, 635,
|
|
|
|
646, 649, 651, 654, 665, 667, 670, 671,
|
|
|
|
672, 673, 674, 675, 676, 677, 678, 679,
|
|
|
|
680, 681, 685, 686, 687, 691, 698, 706,
|
|
|
|
707, 708, 709, 710, 711, 712, 713, 714,
|
|
|
|
715, 719, 720, 721, 722, 723, 724, 725,
|
|
|
|
726, 730, 737, 745, 746, 747, 748, 749,
|
|
|
|
753, 761, 777, 781, 793, 794, 795, 805,
|
|
|
|
807, 810, 818, 826, 834, 846, 850, 851,
|
|
|
|
852, 853, 854, 855, 856, 857, 858, 862,
|
|
|
|
870, 883, 888, 892, 893, 894, 895, 896,
|
|
|
|
897, 909, 914, 918, 927, 931, 932, 933,
|
|
|
|
934, 935, 936, 940, 949, 956, 967, 971,
|
|
|
|
985, 995, 1007, 1012, 1018, 1023, 1024, 1025,
|
|
|
|
1026, 1027, 1028, 1031, 1038, 1046, 1047, 1051,
|
|
|
|
1059, 1063, 1068, 1069, 1070, 1080, 1082, 1085,
|
|
|
|
1095, 1107, 1119, 1120, 1121, 1122, 1123, 1124,
|
|
|
|
1125, 1126, 1127, 1128, 1129, 1130, 1131, 1135,
|
|
|
|
1142, 1150, 1151, 1152, 1153, 1154, 1155, 1159,
|
|
|
|
1160, 1161, 1162, 1163, 1164, 1165, 1166, 1167,
|
|
|
|
1171, 1179, 1182, 1184, 1185, 1186, 1187, 1188,
|
|
|
|
1199, 1202, 1204, 1215, 1227, 1239, 1243, 1243,
|
|
|
|
1244, 1253, 1256, 1258, 1269, 1273, 1273, 1274,
|
|
|
|
1283, 1286, 1288, 1289, 1290, 1291, 1292, 1293,
|
|
|
|
1304, 1307, 1309, 1316, 1317, 1326, 1329, 1331,
|
|
|
|
1332, 1333, 1334, 1335, 1339, 1339, 1340, 1351,
|
|
|
|
1354, 1356, 1363, 1364, 1376, 1379, 1381, 1382,
|
|
|
|
1384, 1387, 1389, 1392, 1393, 1394, 1395, 1396,
|
|
|
|
1399, 1400, 1401
|
2014-03-29 21:07:19 -07:00
|
|
|
};
|
|
|
|
|
|
|
|
static const char _eo_tokenizer_trans_keys[] = {
|
|
|
|
10, 42, 10, 42, 47, 10, 115, 116,
|
|
|
|
114, 97, 99, 116, 9, 13, 32, 9,
|
2014-03-31 01:31:33 -07:00
|
|
|
13, 32, 65, 90, 97, 122, 9, 10,
|
|
|
|
13, 32, 40, 95, 123, 0, 31, 48,
|
|
|
|
57, 65, 90, 97, 122, 10, 123, 0,
|
|
|
|
32, 9, 10, 13, 32, 40, 123, 0,
|
|
|
|
31, 41, 65, 90, 97, 122, 10, 123,
|
|
|
|
0, 32, 10, 41, 44, 95, 0, 32,
|
|
|
|
48, 57, 65, 90, 97, 122, 10, 41,
|
|
|
|
44, 0, 32, 10, 0, 32, 65, 90,
|
|
|
|
97, 122, 97, 115, 115, 9, 13, 32,
|
|
|
|
116, 101, 114, 102, 97, 99, 101, 9,
|
|
|
|
13, 32, 120, 105, 110, 9, 13, 32,
|
|
|
|
10, 42, 64, 10, 42, 10, 42, 47,
|
|
|
|
10, 42, 95, 0, 32, 48, 57, 64,
|
|
|
|
90, 97, 122, 10, 42, 10, 42, 47,
|
|
|
|
10, 9, 13, 32, 58, 9, 13, 32,
|
|
|
|
65, 90, 97, 122, 9, 13, 32, 65,
|
|
|
|
90, 97, 122, 9, 13, 32, 44, 59,
|
|
|
|
95, 48, 57, 65, 90, 97, 122, 9,
|
2014-03-29 21:07:19 -07:00
|
|
|
13, 32, 58, 95, 48, 57, 65, 90,
|
2014-03-31 01:31:33 -07:00
|
|
|
97, 122, 9, 13, 32, 58, 95, 103,
|
2014-03-29 21:07:19 -07:00
|
|
|
48, 57, 65, 90, 97, 122, 9, 13,
|
2014-03-31 01:31:33 -07:00
|
|
|
32, 58, 95, 97, 48, 57, 65, 90,
|
|
|
|
98, 122, 9, 13, 32, 58, 95, 99,
|
2014-03-29 21:07:19 -07:00
|
|
|
48, 57, 65, 90, 97, 122, 9, 13,
|
2014-03-31 01:31:33 -07:00
|
|
|
32, 58, 95, 121, 48, 57, 65, 90,
|
2014-03-29 21:07:19 -07:00
|
|
|
97, 122, 9, 13, 32, 58, 95, 48,
|
|
|
|
57, 65, 90, 97, 122, 9, 13, 32,
|
2014-03-31 01:31:33 -07:00
|
|
|
58, 65, 90, 97, 122, 59, 95, 48,
|
|
|
|
57, 65, 90, 97, 122, 9, 13, 32,
|
|
|
|
58, 95, 116, 48, 57, 65, 90, 97,
|
|
|
|
122, 9, 13, 32, 58, 95, 117, 48,
|
|
|
|
57, 65, 90, 97, 122, 9, 13, 32,
|
|
|
|
58, 95, 114, 48, 57, 65, 90, 97,
|
|
|
|
122, 9, 13, 32, 58, 95, 110, 48,
|
|
|
|
57, 65, 90, 97, 122, 9, 13, 32,
|
|
|
|
58, 95, 48, 57, 65, 90, 97, 122,
|
|
|
|
9, 13, 32, 58, 65, 90, 97, 122,
|
|
|
|
9, 13, 32, 95, 40, 42, 45, 46,
|
|
|
|
48, 57, 64, 90, 97, 122, 9, 13,
|
|
|
|
32, 59, 95, 40, 42, 45, 46, 48,
|
|
|
|
57, 64, 90, 97, 122, 9, 13, 32,
|
|
|
|
47, 42, 64, 10, 95, 0, 32, 48,
|
|
|
|
57, 64, 90, 97, 122, 10, 42, 10,
|
|
|
|
42, 47, 10, 42, 10, 42, 47, 10,
|
|
|
|
9, 13, 32, 42, 59, 95, 48, 57,
|
|
|
|
64, 90, 97, 122, 9, 13, 32, 47,
|
|
|
|
42, 64, 10, 95, 0, 32, 48, 57,
|
|
|
|
64, 90, 97, 122, 10, 42, 10, 42,
|
|
|
|
47, 10, 42, 10, 42, 47, 10, 116,
|
|
|
|
10, 123, 0, 32, 121, 115, 10, 123,
|
|
|
|
0, 32, 116, 10, 123, 0, 32, 108,
|
|
|
|
117, 101, 115, 10, 123, 0, 32, 10,
|
2014-04-03 06:20:58 -07:00
|
|
|
42, 10, 42, 47, 10, 9, 10, 13,
|
|
|
|
32, 95, 123, 0, 31, 48, 57, 65,
|
|
|
|
90, 97, 122, 10, 123, 0, 32, 10,
|
|
|
|
95, 123, 0, 32, 48, 57, 65, 90,
|
|
|
|
97, 122, 10, 95, 123, 0, 32, 48,
|
|
|
|
57, 65, 90, 97, 122, 10, 42, 64,
|
|
|
|
10, 42, 10, 42, 47, 10, 42, 95,
|
|
|
|
0, 32, 48, 57, 64, 90, 97, 122,
|
|
|
|
10, 42, 10, 42, 47, 10, 110, 115,
|
|
|
|
116, 59, 103, 97, 99, 121, 9, 13,
|
|
|
|
32, 9, 13, 32, 65, 90, 97, 122,
|
2014-03-31 01:31:33 -07:00
|
|
|
59, 95, 48, 57, 65, 90, 97, 122,
|
2014-04-03 06:20:58 -07:00
|
|
|
114, 97, 109, 115, 10, 123, 0, 32,
|
|
|
|
116, 117, 114, 110, 9, 13, 32, 9,
|
|
|
|
13, 32, 65, 90, 97, 122, 9, 13,
|
|
|
|
32, 95, 40, 42, 45, 46, 48, 57,
|
|
|
|
64, 90, 97, 122, 9, 13, 32, 59,
|
|
|
|
95, 40, 42, 45, 46, 48, 57, 64,
|
|
|
|
90, 97, 122, 9, 13, 32, 47, 42,
|
2014-04-02 04:04:12 -07:00
|
|
|
64, 10, 95, 0, 32, 48, 57, 64,
|
|
|
|
90, 97, 122, 10, 42, 10, 42, 47,
|
2014-04-03 06:20:58 -07:00
|
|
|
10, 42, 10, 42, 47, 10, 9, 10,
|
|
|
|
13, 32, 95, 123, 0, 31, 48, 57,
|
|
|
|
65, 90, 97, 122, 10, 123, 0, 32,
|
|
|
|
10, 95, 123, 0, 32, 48, 57, 65,
|
|
|
|
90, 97, 122, 10, 95, 123, 0, 32,
|
|
|
|
48, 57, 65, 90, 97, 122, 10, 42,
|
|
|
|
64, 10, 42, 10, 42, 47, 10, 42,
|
|
|
|
95, 0, 32, 48, 57, 64, 90, 97,
|
|
|
|
122, 10, 42, 10, 42, 47, 10, 110,
|
|
|
|
115, 116, 114, 117, 99, 116, 111, 114,
|
|
|
|
115, 10, 123, 0, 32, 116, 97, 10,
|
|
|
|
58, 0, 32, 10, 0, 32, 65, 90,
|
|
|
|
97, 122, 59, 95, 48, 57, 65, 90,
|
|
|
|
97, 122, 115, 116, 114, 117, 99, 116,
|
|
|
|
111, 114, 115, 10, 123, 0, 32, 95,
|
|
|
|
112, 114, 101, 102, 105, 120, 10, 58,
|
|
|
|
0, 32, 10, 0, 32, 65, 90, 97,
|
2014-04-02 04:04:12 -07:00
|
|
|
122, 59, 95, 48, 57, 65, 90, 97,
|
2014-04-03 06:20:58 -07:00
|
|
|
122, 101, 110, 116, 115, 10, 123, 0,
|
|
|
|
32, 10, 125, 0, 32, 65, 90, 97,
|
|
|
|
122, 9, 10, 13, 32, 40, 44, 59,
|
|
|
|
95, 0, 31, 48, 57, 65, 90, 97,
|
|
|
|
122, 10, 59, 0, 32, 9, 10, 13,
|
|
|
|
32, 47, 125, 0, 31, 65, 90, 97,
|
|
|
|
122, 42, 64, 10, 95, 0, 32, 48,
|
|
|
|
57, 64, 90, 97, 122, 10, 42, 10,
|
|
|
|
42, 47, 10, 125, 0, 32, 65, 90,
|
|
|
|
97, 122, 9, 10, 13, 32, 40, 59,
|
|
|
|
0, 31, 9, 13, 32, 95, 65, 90,
|
|
|
|
97, 122, 9, 13, 32, 41, 42, 95,
|
|
|
|
48, 57, 65, 90, 97, 122, 10, 59,
|
|
|
|
0, 32, 112, 108, 101, 109, 101, 110,
|
|
|
|
116, 115, 10, 123, 0, 32, 10, 125,
|
|
|
|
0, 32, 65, 90, 97, 122, 10, 58,
|
|
|
|
59, 95, 123, 0, 32, 48, 57, 65,
|
|
|
|
90, 97, 122, 10, 59, 123, 0, 32,
|
|
|
|
10, 108, 0, 32, 101, 103, 97, 99,
|
|
|
|
121, 9, 10, 13, 32, 59, 123, 0,
|
|
|
|
31, 65, 90, 97, 122, 10, 59, 123,
|
|
|
|
0, 32, 10, 125, 0, 32, 10, 59,
|
|
|
|
125, 0, 32, 65, 90, 97, 122, 10,
|
|
|
|
112, 0, 32, 97, 114, 97, 109, 115,
|
|
|
|
10, 123, 0, 32, 10, 58, 59, 0,
|
|
|
|
32, 65, 90, 97, 122, 9, 13, 32,
|
|
|
|
65, 90, 97, 122, 10, 59, 95, 0,
|
|
|
|
32, 48, 57, 65, 90, 97, 122, 10,
|
|
|
|
59, 0, 32, 9, 10, 13, 32, 47,
|
|
|
|
58, 59, 125, 0, 31, 65, 90, 97,
|
|
|
|
122, 10, 58, 59, 125, 0, 32, 65,
|
|
|
|
90, 97, 122, 9, 13, 32, 58, 59,
|
|
|
|
95, 48, 57, 65, 90, 97, 122, 9,
|
|
|
|
13, 32, 58, 59, 10, 59, 114, 125,
|
|
|
|
0, 32, 10, 114, 125, 0, 32, 101,
|
|
|
|
116, 117, 114, 110, 9, 13, 32, 9,
|
|
|
|
13, 32, 65, 90, 97, 122, 58, 95,
|
|
|
|
48, 57, 65, 90, 97, 122, 58, 65,
|
|
|
|
90, 97, 122, 59, 95, 48, 57, 65,
|
|
|
|
90, 97, 122, 10, 125, 0, 32, 10,
|
|
|
|
59, 125, 0, 32, 42, 64, 10, 95,
|
|
|
|
0, 32, 48, 57, 64, 90, 97, 122,
|
|
|
|
10, 42, 10, 42, 47, 10, 58, 59,
|
|
|
|
125, 0, 32, 65, 90, 97, 122, 9,
|
|
|
|
10, 13, 32, 59, 123, 0, 31, 65,
|
|
|
|
90, 97, 122, 10, 59, 95, 123, 0,
|
|
|
|
32, 48, 57, 65, 90, 97, 122, 58,
|
|
|
|
103, 97, 99, 121, 95, 112, 114, 101,
|
|
|
|
102, 105, 120, 10, 58, 0, 32, 10,
|
|
|
|
0, 32, 65, 90, 97, 122, 59, 95,
|
|
|
|
48, 57, 65, 90, 97, 122, 116, 104,
|
|
|
|
111, 100, 115, 10, 123, 0, 32, 111,
|
|
|
|
112, 101, 114, 116, 105, 101, 115, 10,
|
|
|
|
123, 0, 32, 10, 47, 97, 99, 105,
|
|
|
|
109, 0, 32, 10, 0, 32, 42, 47,
|
|
|
|
98, 108, 110, 105, 10, 47, 108, 114,
|
|
|
|
125, 0, 32, 65, 90, 97, 122, 10,
|
|
|
|
0, 32, 42, 47, 9, 13, 32, 58,
|
|
|
|
95, 48, 57, 65, 90, 97, 122, 9,
|
|
|
|
13, 32, 58, 95, 101, 48, 57, 65,
|
|
|
|
90, 97, 122, 9, 13, 32, 58, 95,
|
|
|
|
101, 48, 57, 65, 90, 97, 122, 9,
|
|
|
|
13, 32, 47, 59, 10, 47, 125, 0,
|
|
|
|
32, 64, 90, 97, 122, 10, 0, 32,
|
|
|
|
42, 47, 9, 13, 32, 42, 95, 48,
|
|
|
|
57, 64, 90, 97, 122, 9, 13, 32,
|
|
|
|
47, 59, 10, 47, 103, 107, 115, 118,
|
|
|
|
125, 0, 32, 10, 0, 32, 42, 47,
|
|
|
|
101, 101, 101, 97, 59, 10, 47, 125,
|
|
|
|
0, 32, 48, 57, 65, 90, 97, 122,
|
|
|
|
10, 0, 32, 42, 47, 95, 48, 57,
|
|
|
|
65, 90, 97, 122, 59, 10, 47, 99,
|
|
|
|
108, 112, 114, 125, 0, 32, 10, 0,
|
|
|
|
32, 42, 47, 111, 101, 97, 101, 9,
|
|
|
|
13, 32, 47, 59, 10, 47, 125, 0,
|
|
|
|
32, 48, 57, 65, 90, 97, 122, 10,
|
|
|
|
0, 32, 42, 47, 95, 48, 57, 65,
|
|
|
|
90, 97, 122, 59, 10, 47, 99, 100,
|
|
|
|
101, 105, 108, 109, 112, 125, 0, 32,
|
|
|
|
10, 0, 32, 42, 47, 111, 97, 101,
|
|
|
|
10, 0, 32, 111, 118, 10, 0, 32,
|
|
|
|
59, 109, 59, 101, 10, 0, 32, 101,
|
|
|
|
114, 59, 0
|
2014-03-29 21:07:19 -07:00
|
|
|
};
|
|
|
|
|
|
|
|
static const char _eo_tokenizer_single_lengths[] = {
|
|
|
|
2, 3, 1, 1, 1, 1, 1, 1,
|
2014-03-31 01:31:33 -07:00
|
|
|
1, 3, 3, 7, 2, 6, 1, 2,
|
|
|
|
4, 3, 1, 1, 1, 1, 3, 1,
|
|
|
|
1, 1, 1, 1, 1, 1, 3, 1,
|
|
|
|
1, 1, 3, 3, 2, 3, 3, 2,
|
|
|
|
3, 1, 4, 3, 3, 6, 5, 6,
|
|
|
|
6, 6, 6, 5, 4, 2, 6, 6,
|
|
|
|
6, 6, 5, 4, 4, 5, 4, 1,
|
|
|
|
1, 2, 2, 3, 2, 3, 1, 6,
|
|
|
|
4, 1, 1, 2, 2, 3, 2, 3,
|
|
|
|
1, 1, 2, 1, 1, 2, 1, 2,
|
|
|
|
1, 1, 1, 1, 2, 2, 3, 1,
|
2014-04-03 06:20:58 -07:00
|
|
|
6, 2, 3, 3, 3, 2, 3, 3,
|
2014-03-31 01:31:33 -07:00
|
|
|
2, 3, 1, 1, 1, 1, 1, 1,
|
2014-04-03 06:20:58 -07:00
|
|
|
1, 1, 1, 3, 3, 2, 1, 1,
|
|
|
|
1, 1, 2, 1, 1, 1, 1, 3,
|
|
|
|
3, 4, 5, 4, 1, 1, 2, 2,
|
|
|
|
3, 2, 3, 1, 6, 2, 3, 3,
|
|
|
|
3, 2, 3, 3, 2, 3, 1, 1,
|
|
|
|
1, 1, 1, 1, 1, 1, 1, 1,
|
|
|
|
1, 2, 1, 1, 2, 1, 2, 1,
|
2014-04-02 04:04:12 -07:00
|
|
|
1, 1, 1, 1, 1, 1, 1, 1,
|
2014-04-03 06:20:58 -07:00
|
|
|
2, 1, 1, 1, 1, 1, 1, 1,
|
|
|
|
2, 1, 2, 1, 1, 1, 1, 2,
|
|
|
|
2, 8, 2, 6, 1, 1, 2, 2,
|
|
|
|
3, 2, 6, 4, 6, 2, 1, 1,
|
|
|
|
1, 1, 1, 1, 1, 1, 2, 2,
|
|
|
|
5, 3, 2, 1, 1, 1, 1, 1,
|
|
|
|
6, 3, 2, 3, 2, 1, 1, 1,
|
|
|
|
1, 1, 2, 3, 3, 3, 2, 8,
|
|
|
|
4, 6, 5, 4, 3, 1, 1, 1,
|
|
|
|
1, 1, 3, 3, 2, 1, 0, 2,
|
|
|
|
2, 3, 1, 1, 2, 2, 3, 4,
|
|
|
|
6, 4, 1, 1, 1, 1, 1, 1,
|
|
|
|
1, 1, 1, 1, 1, 1, 2, 1,
|
|
|
|
2, 1, 1, 1, 1, 1, 2, 1,
|
|
|
|
1, 1, 1, 1, 1, 1, 1, 2,
|
|
|
|
6, 1, 2, 1, 1, 1, 1, 5,
|
|
|
|
1, 2, 5, 6, 6, 4, 0, 1,
|
|
|
|
3, 1, 2, 5, 4, 0, 1, 7,
|
|
|
|
1, 2, 1, 1, 1, 1, 1, 3,
|
|
|
|
1, 2, 1, 1, 7, 1, 2, 1,
|
|
|
|
1, 1, 1, 4, 0, 1, 3, 1,
|
|
|
|
2, 1, 1, 10, 1, 2, 1, 2,
|
|
|
|
1, 2, 1, 1, 1, 1, 1, 1,
|
|
|
|
1, 1, 1
|
2014-03-29 21:07:19 -07:00
|
|
|
};
|
|
|
|
|
|
|
|
static const char _eo_tokenizer_range_lengths[] = {
|
|
|
|
0, 0, 0, 0, 0, 0, 0, 0,
|
2014-03-31 01:31:33 -07:00
|
|
|
0, 0, 2, 4, 1, 1, 2, 1,
|
|
|
|
4, 1, 3, 0, 0, 0, 0, 0,
|
2014-03-29 21:07:19 -07:00
|
|
|
0, 0, 0, 0, 0, 0, 0, 0,
|
2014-03-31 01:31:33 -07:00
|
|
|
0, 0, 0, 0, 0, 0, 4, 0,
|
|
|
|
0, 0, 0, 2, 2, 3, 3, 3,
|
|
|
|
3, 3, 3, 3, 2, 3, 3, 3,
|
|
|
|
3, 3, 3, 2, 5, 5, 0, 0,
|
|
|
|
0, 4, 0, 0, 0, 0, 0, 3,
|
|
|
|
0, 0, 0, 4, 0, 0, 0, 0,
|
|
|
|
0, 0, 1, 0, 0, 1, 0, 1,
|
|
|
|
0, 0, 0, 0, 1, 0, 0, 0,
|
2014-04-03 06:20:58 -07:00
|
|
|
4, 1, 4, 4, 0, 0, 0, 4,
|
2014-03-29 21:07:19 -07:00
|
|
|
0, 0, 0, 0, 0, 0, 0, 0,
|
2014-04-03 06:20:58 -07:00
|
|
|
0, 0, 0, 0, 2, 3, 0, 0,
|
|
|
|
0, 0, 1, 0, 0, 0, 0, 0,
|
|
|
|
2, 5, 5, 0, 0, 0, 4, 0,
|
|
|
|
0, 0, 0, 0, 4, 1, 4, 4,
|
|
|
|
0, 0, 0, 4, 0, 0, 0, 0,
|
2014-03-31 01:31:33 -07:00
|
|
|
0, 0, 0, 0, 0, 0, 0, 0,
|
2014-04-03 06:20:58 -07:00
|
|
|
0, 1, 0, 0, 1, 3, 3, 0,
|
2014-04-02 04:04:12 -07:00
|
|
|
0, 0, 0, 0, 0, 0, 0, 0,
|
2014-04-03 06:20:58 -07:00
|
|
|
1, 0, 0, 0, 0, 0, 0, 0,
|
|
|
|
1, 3, 3, 0, 0, 0, 0, 1,
|
|
|
|
3, 4, 1, 3, 0, 0, 4, 0,
|
|
|
|
0, 3, 1, 2, 3, 1, 0, 0,
|
|
|
|
0, 0, 0, 0, 0, 0, 1, 3,
|
|
|
|
4, 1, 1, 0, 0, 0, 0, 0,
|
|
|
|
3, 1, 1, 3, 1, 0, 0, 0,
|
|
|
|
0, 0, 1, 3, 2, 4, 1, 3,
|
|
|
|
3, 3, 0, 1, 1, 0, 0, 0,
|
|
|
|
0, 0, 0, 2, 3, 0, 2, 3,
|
|
|
|
1, 1, 0, 0, 4, 0, 0, 3,
|
|
|
|
3, 4, 0, 0, 0, 0, 0, 0,
|
|
|
|
0, 0, 0, 0, 0, 0, 1, 3,
|
|
|
|
3, 0, 0, 0, 0, 0, 1, 0,
|
|
|
|
0, 0, 0, 0, 0, 0, 0, 1,
|
|
|
|
1, 1, 0, 0, 0, 0, 0, 3,
|
|
|
|
1, 0, 3, 3, 3, 0, 0, 0,
|
|
|
|
3, 1, 0, 3, 0, 0, 0, 1,
|
|
|
|
1, 0, 0, 0, 0, 0, 0, 4,
|
|
|
|
1, 0, 3, 0, 1, 1, 0, 0,
|
|
|
|
0, 0, 0, 0, 0, 0, 4, 1,
|
|
|
|
0, 3, 0, 1, 1, 0, 0, 0,
|
|
|
|
1, 0, 1, 0, 0, 0, 0, 1,
|
|
|
|
0, 0, 0
|
2014-03-29 21:07:19 -07:00
|
|
|
};
|
|
|
|
|
|
|
|
static const short _eo_tokenizer_index_offsets[] = {
|
|
|
|
0, 3, 7, 9, 11, 13, 15, 17,
|
2014-03-31 01:31:33 -07:00
|
|
|
19, 21, 25, 31, 43, 47, 55, 59,
|
|
|
|
63, 72, 77, 82, 84, 86, 88, 92,
|
|
|
|
94, 96, 98, 100, 102, 104, 106, 110,
|
|
|
|
112, 114, 116, 120, 124, 127, 131, 139,
|
|
|
|
142, 146, 148, 153, 159, 165, 175, 184,
|
|
|
|
194, 204, 214, 224, 233, 240, 246, 256,
|
|
|
|
266, 276, 286, 295, 302, 312, 323, 328,
|
|
|
|
330, 332, 339, 342, 346, 349, 353, 355,
|
|
|
|
365, 370, 372, 374, 381, 384, 388, 391,
|
|
|
|
395, 397, 399, 403, 405, 407, 411, 413,
|
|
|
|
417, 419, 421, 423, 425, 429, 432, 436,
|
2014-04-03 06:20:58 -07:00
|
|
|
438, 449, 453, 461, 469, 473, 476, 480,
|
|
|
|
488, 491, 495, 497, 499, 501, 503, 505,
|
|
|
|
507, 509, 511, 513, 517, 523, 529, 531,
|
|
|
|
533, 535, 537, 541, 543, 545, 547, 549,
|
|
|
|
553, 559, 569, 580, 585, 587, 589, 596,
|
|
|
|
599, 603, 606, 610, 612, 623, 627, 635,
|
|
|
|
643, 647, 650, 654, 662, 665, 669, 671,
|
|
|
|
673, 675, 677, 679, 681, 683, 685, 687,
|
|
|
|
689, 691, 695, 697, 699, 703, 708, 714,
|
|
|
|
716, 718, 720, 722, 724, 726, 728, 730,
|
|
|
|
732, 736, 738, 740, 742, 744, 746, 748,
|
|
|
|
750, 754, 759, 765, 767, 769, 771, 773,
|
|
|
|
777, 783, 796, 800, 810, 812, 814, 821,
|
|
|
|
824, 828, 834, 842, 849, 859, 863, 865,
|
|
|
|
867, 869, 871, 873, 875, 877, 879, 883,
|
|
|
|
889, 899, 904, 908, 910, 912, 914, 916,
|
|
|
|
918, 928, 933, 937, 944, 948, 950, 952,
|
|
|
|
954, 956, 958, 962, 969, 975, 983, 987,
|
|
|
|
999, 1007, 1017, 1023, 1029, 1034, 1036, 1038,
|
|
|
|
1040, 1042, 1044, 1048, 1054, 1060, 1062, 1065,
|
|
|
|
1071, 1075, 1080, 1082, 1084, 1091, 1094, 1098,
|
|
|
|
1106, 1116, 1125, 1127, 1129, 1131, 1133, 1135,
|
|
|
|
1137, 1139, 1141, 1143, 1145, 1147, 1149, 1153,
|
|
|
|
1158, 1164, 1166, 1168, 1170, 1172, 1174, 1178,
|
|
|
|
1180, 1182, 1184, 1186, 1188, 1190, 1192, 1194,
|
|
|
|
1198, 1206, 1209, 1212, 1214, 1216, 1218, 1220,
|
|
|
|
1229, 1232, 1235, 1244, 1254, 1264, 1269, 1270,
|
|
|
|
1272, 1279, 1282, 1285, 1294, 1299, 1300, 1302,
|
|
|
|
1311, 1314, 1317, 1319, 1321, 1323, 1325, 1327,
|
|
|
|
1335, 1338, 1341, 1346, 1348, 1357, 1360, 1363,
|
|
|
|
1365, 1367, 1369, 1371, 1376, 1377, 1379, 1387,
|
|
|
|
1390, 1393, 1398, 1400, 1412, 1415, 1418, 1420,
|
|
|
|
1423, 1426, 1429, 1432, 1434, 1436, 1438, 1440,
|
|
|
|
1443, 1445, 1447
|
2014-03-29 21:07:19 -07:00
|
|
|
};
|
|
|
|
|
|
|
|
static const short _eo_tokenizer_indicies[] = {
|
|
|
|
2, 3, 1, 2, 3, 4, 1, 6,
|
|
|
|
5, 7, 0, 8, 0, 9, 0, 10,
|
|
|
|
0, 11, 0, 12, 0, 13, 13, 13,
|
2014-03-31 01:31:33 -07:00
|
|
|
0, 14, 14, 14, 15, 15, 0, 17,
|
|
|
|
18, 17, 17, 19, 20, 21, 16, 20,
|
|
|
|
20, 20, 0, 23, 24, 22, 0, 25,
|
|
|
|
23, 25, 25, 26, 24, 22, 0, 27,
|
|
|
|
28, 28, 0, 30, 31, 29, 0, 33,
|
|
|
|
34, 35, 36, 32, 36, 36, 36, 0,
|
|
|
|
38, 27, 39, 37, 0, 40, 39, 28,
|
|
|
|
28, 0, 41, 0, 42, 0, 43, 0,
|
|
|
|
44, 44, 44, 0, 45, 0, 46, 0,
|
|
|
|
47, 0, 48, 0, 49, 0, 50, 0,
|
|
|
|
51, 0, 52, 52, 52, 0, 53, 0,
|
|
|
|
54, 0, 55, 0, 56, 56, 56, 0,
|
|
|
|
59, 60, 61, 58, 59, 60, 58, 59,
|
|
|
|
60, 62, 58, 63, 60, 64, 61, 64,
|
|
|
|
64, 64, 58, 66, 67, 65, 66, 67,
|
|
|
|
68, 65, 70, 69, 71, 71, 71, 72,
|
|
|
|
57, 73, 73, 73, 74, 74, 57, 75,
|
|
|
|
75, 75, 76, 76, 57, 77, 77, 77,
|
|
|
|
77, 78, 77, 77, 77, 77, 57, 71,
|
|
|
|
71, 71, 72, 79, 79, 79, 79, 57,
|
|
|
|
71, 71, 71, 72, 79, 80, 79, 79,
|
|
|
|
79, 57, 71, 71, 71, 72, 79, 81,
|
|
|
|
79, 79, 79, 57, 71, 71, 71, 72,
|
|
|
|
79, 82, 79, 79, 79, 57, 71, 71,
|
|
|
|
71, 72, 79, 83, 79, 79, 79, 57,
|
|
|
|
84, 84, 84, 72, 79, 79, 79, 79,
|
|
|
|
57, 84, 84, 84, 72, 85, 85, 57,
|
|
|
|
87, 86, 86, 86, 86, 57, 71, 71,
|
|
|
|
71, 72, 79, 88, 79, 79, 79, 57,
|
|
|
|
71, 71, 71, 72, 79, 89, 79, 79,
|
|
|
|
79, 57, 71, 71, 71, 72, 79, 90,
|
|
|
|
79, 79, 79, 57, 71, 71, 71, 72,
|
|
|
|
79, 91, 79, 79, 79, 57, 92, 92,
|
|
|
|
92, 72, 79, 79, 79, 79, 57, 92,
|
|
|
|
92, 92, 72, 93, 93, 57, 94, 94,
|
|
|
|
94, 94, 94, 94, 94, 94, 94, 57,
|
|
|
|
94, 94, 94, 95, 94, 94, 94, 94,
|
|
|
|
94, 94, 57, 97, 97, 97, 98, 96,
|
|
|
|
99, 96, 100, 96, 101, 102, 100, 102,
|
|
|
|
102, 102, 96, 104, 105, 103, 104, 105,
|
|
|
|
106, 103, 109, 110, 108, 109, 110, 111,
|
|
|
|
108, 113, 112, 114, 114, 114, 114, 115,
|
|
|
|
114, 114, 114, 114, 107, 117, 117, 117,
|
|
|
|
118, 116, 119, 116, 120, 116, 121, 122,
|
|
|
|
120, 122, 122, 122, 116, 124, 125, 123,
|
|
|
|
124, 125, 126, 123, 129, 130, 128, 129,
|
|
|
|
130, 131, 128, 133, 132, 134, 127, 135,
|
|
|
|
136, 134, 127, 137, 127, 138, 127, 139,
|
|
|
|
140, 138, 127, 141, 127, 142, 143, 141,
|
|
|
|
127, 144, 127, 145, 127, 146, 127, 147,
|
|
|
|
127, 148, 149, 147, 127, 152, 153, 151,
|
|
|
|
152, 153, 154, 151, 156, 155, 158, 159,
|
2014-04-03 06:20:58 -07:00
|
|
|
158, 158, 160, 161, 157, 160, 160, 160,
|
|
|
|
150, 163, 164, 162, 150, 163, 165, 164,
|
|
|
|
162, 165, 165, 165, 150, 159, 165, 161,
|
|
|
|
157, 165, 165, 165, 150, 168, 169, 170,
|
|
|
|
167, 168, 169, 167, 168, 169, 171, 167,
|
|
|
|
172, 169, 173, 170, 173, 173, 173, 167,
|
|
|
|
175, 176, 174, 175, 176, 177, 174, 179,
|
|
|
|
178, 180, 166, 181, 166, 182, 166, 183,
|
|
|
|
166, 184, 166, 185, 166, 186, 166, 187,
|
|
|
|
166, 188, 188, 188, 166, 188, 188, 188,
|
|
|
|
189, 189, 166, 191, 190, 190, 190, 190,
|
|
|
|
166, 192, 166, 193, 166, 194, 166, 195,
|
|
|
|
166, 196, 197, 195, 166, 198, 166, 199,
|
|
|
|
166, 200, 166, 201, 166, 202, 202, 202,
|
|
|
|
166, 202, 202, 202, 203, 203, 166, 204,
|
|
|
|
204, 204, 204, 204, 204, 204, 204, 204,
|
|
|
|
166, 204, 204, 204, 205, 204, 204, 204,
|
|
|
|
204, 204, 204, 166, 207, 207, 207, 208,
|
|
|
|
206, 209, 206, 210, 206, 211, 212, 210,
|
|
|
|
212, 212, 212, 206, 214, 215, 213, 214,
|
|
|
|
215, 216, 213, 219, 220, 218, 219, 220,
|
|
|
|
221, 218, 223, 222, 225, 226, 225, 225,
|
|
|
|
227, 228, 224, 227, 227, 227, 217, 230,
|
|
|
|
231, 229, 217, 230, 232, 231, 229, 232,
|
|
|
|
232, 232, 217, 226, 232, 228, 224, 232,
|
|
|
|
232, 232, 217, 235, 236, 237, 234, 235,
|
|
|
|
236, 234, 235, 236, 238, 234, 239, 236,
|
|
|
|
240, 237, 240, 240, 240, 234, 242, 243,
|
|
|
|
241, 242, 243, 244, 241, 246, 245, 247,
|
|
|
|
233, 248, 233, 249, 233, 250, 233, 251,
|
|
|
|
233, 252, 233, 253, 233, 254, 233, 255,
|
|
|
|
233, 256, 233, 257, 258, 256, 233, 259,
|
|
|
|
233, 260, 233, 261, 262, 260, 233, 263,
|
|
|
|
262, 264, 264, 233, 266, 265, 265, 265,
|
|
|
|
265, 233, 267, 233, 268, 233, 269, 233,
|
|
|
|
270, 233, 271, 233, 272, 233, 273, 233,
|
|
|
|
274, 233, 275, 233, 276, 277, 275, 233,
|
|
|
|
278, 233, 279, 233, 280, 233, 281, 233,
|
|
|
|
282, 233, 283, 233, 284, 233, 285, 286,
|
|
|
|
284, 233, 287, 286, 288, 288, 233, 290,
|
|
|
|
289, 289, 289, 289, 233, 291, 233, 292,
|
|
|
|
233, 293, 233, 294, 233, 295, 296, 294,
|
|
|
|
233, 297, 299, 296, 298, 298, 233, 301,
|
|
|
|
302, 301, 301, 303, 304, 305, 304, 300,
|
|
|
|
304, 304, 304, 233, 307, 308, 306, 233,
|
|
|
|
308, 297, 308, 308, 309, 299, 296, 298,
|
|
|
|
298, 233, 310, 233, 311, 233, 312, 313,
|
|
|
|
311, 313, 313, 313, 233, 315, 316, 314,
|
|
|
|
315, 316, 317, 314, 319, 321, 318, 320,
|
|
|
|
320, 233, 322, 307, 322, 322, 323, 308,
|
|
|
|
306, 233, 323, 323, 323, 324, 324, 324,
|
|
|
|
233, 325, 325, 325, 326, 325, 325, 325,
|
|
|
|
325, 325, 233, 328, 329, 327, 233, 330,
|
|
|
|
233, 331, 233, 332, 233, 333, 233, 334,
|
|
|
|
233, 335, 233, 336, 233, 337, 233, 338,
|
|
|
|
339, 337, 233, 340, 342, 339, 341, 341,
|
|
|
|
233, 344, 346, 347, 345, 348, 343, 345,
|
|
|
|
345, 345, 233, 350, 339, 351, 349, 233,
|
|
|
|
352, 353, 351, 233, 354, 233, 355, 233,
|
|
|
|
356, 233, 357, 233, 358, 233, 360, 361,
|
|
|
|
360, 360, 362, 364, 359, 363, 363, 233,
|
|
|
|
366, 367, 368, 365, 233, 369, 370, 367,
|
|
|
|
233, 340, 339, 342, 339, 341, 341, 233,
|
|
|
|
371, 372, 368, 233, 373, 233, 374, 233,
|
|
|
|
375, 233, 376, 233, 377, 233, 378, 379,
|
|
|
|
377, 233, 380, 381, 382, 379, 383, 383,
|
|
|
|
233, 381, 381, 381, 384, 384, 233, 386,
|
|
|
|
388, 387, 385, 387, 387, 387, 233, 390,
|
|
|
|
382, 389, 233, 382, 392, 382, 382, 393,
|
|
|
|
381, 382, 394, 391, 383, 383, 233, 392,
|
|
|
|
381, 382, 394, 391, 383, 383, 233, 395,
|
|
|
|
395, 395, 397, 398, 396, 396, 396, 396,
|
|
|
|
233, 399, 399, 399, 381, 382, 233, 401,
|
|
|
|
400, 402, 403, 400, 233, 401, 402, 403,
|
|
|
|
400, 233, 404, 233, 405, 233, 406, 233,
|
|
|
|
407, 233, 408, 233, 409, 409, 409, 233,
|
|
|
|
409, 409, 409, 410, 410, 233, 412, 411,
|
|
|
|
411, 411, 411, 233, 413, 233, 414, 414,
|
|
|
|
233, 416, 415, 415, 415, 415, 233, 418,
|
|
|
|
403, 417, 233, 369, 367, 370, 367, 233,
|
|
|
|
419, 233, 420, 233, 421, 422, 420, 422,
|
|
|
|
422, 422, 233, 424, 425, 423, 424, 425,
|
|
|
|
426, 423, 428, 429, 430, 432, 427, 431,
|
|
|
|
431, 233, 433, 366, 433, 433, 367, 368,
|
|
|
|
365, 434, 434, 233, 436, 438, 437, 439,
|
|
|
|
435, 437, 437, 437, 233, 345, 233, 440,
|
|
|
|
233, 441, 233, 442, 233, 443, 233, 444,
|
|
|
|
233, 445, 233, 446, 233, 447, 233, 448,
|
|
|
|
233, 449, 233, 450, 233, 451, 452, 450,
|
|
|
|
233, 453, 452, 454, 454, 233, 456, 455,
|
|
|
|
455, 455, 455, 233, 457, 233, 458, 233,
|
|
|
|
459, 233, 460, 233, 461, 233, 462, 463,
|
|
|
|
461, 233, 464, 233, 465, 233, 466, 233,
|
|
|
|
467, 233, 468, 233, 469, 233, 470, 233,
|
|
|
|
471, 233, 472, 473, 471, 233, 476, 477,
|
|
|
|
478, 479, 480, 481, 475, 474, 476, 475,
|
|
|
|
482, 1, 5, 483, 484, 483, 485, 483,
|
|
|
|
486, 483, 487, 483, 490, 491, 493, 494,
|
|
|
|
495, 489, 492, 492, 488, 490, 489, 496,
|
|
|
|
498, 69, 497, 71, 71, 71, 72, 79,
|
|
|
|
79, 79, 79, 497, 71, 71, 71, 72,
|
|
|
|
79, 499, 79, 79, 79, 497, 71, 71,
|
|
|
|
71, 72, 79, 500, 79, 79, 79, 497,
|
|
|
|
97, 97, 97, 98, 501, 502, 504, 503,
|
|
|
|
507, 508, 510, 506, 509, 509, 505, 507,
|
|
|
|
506, 511, 108, 112, 512, 114, 114, 114,
|
|
|
|
114, 114, 114, 114, 114, 512, 117, 117,
|
|
|
|
117, 118, 513, 514, 516, 515, 519, 520,
|
|
|
|
521, 522, 523, 524, 525, 518, 517, 519,
|
|
|
|
518, 526, 128, 132, 527, 528, 527, 529,
|
|
|
|
527, 530, 527, 531, 527, 533, 532, 536,
|
|
|
|
537, 539, 535, 538, 538, 538, 534, 536,
|
|
|
|
535, 540, 151, 155, 541, 160, 160, 160,
|
|
|
|
160, 541, 543, 542, 546, 547, 548, 549,
|
|
|
|
550, 551, 552, 545, 544, 546, 545, 553,
|
|
|
|
555, 178, 554, 556, 554, 557, 554, 558,
|
|
|
|
554, 559, 554, 207, 207, 207, 208, 560,
|
|
|
|
561, 563, 562, 566, 567, 569, 565, 568,
|
|
|
|
568, 568, 564, 566, 565, 570, 218, 222,
|
|
|
|
571, 227, 227, 227, 227, 571, 573, 572,
|
|
|
|
576, 577, 578, 579, 580, 581, 582, 583,
|
|
|
|
584, 585, 575, 574, 576, 575, 586, 588,
|
|
|
|
245, 587, 589, 587, 590, 591, 587, 594,
|
|
|
|
593, 592, 595, 596, 587, 599, 598, 597,
|
|
|
|
601, 600, 602, 587, 604, 603, 605, 587,
|
|
|
|
608, 607, 606, 609, 587, 610, 587, 612,
|
|
|
|
611, 0
|
2014-03-29 21:07:19 -07:00
|
|
|
};
|
|
|
|
|
|
|
|
static const short _eo_tokenizer_trans_targs[] = {
|
2014-04-03 06:20:58 -07:00
|
|
|
296, 0, 0, 1, 296, 2, 296, 4,
|
2014-03-29 21:07:19 -07:00
|
|
|
5, 6, 7, 8, 9, 10, 10, 11,
|
2014-04-03 06:20:58 -07:00
|
|
|
12, 13, 12, 14, 11, 296, 12, 12,
|
|
|
|
296, 13, 14, 15, 16, 12, 12, 296,
|
2014-03-31 01:31:33 -07:00
|
|
|
17, 17, 15, 18, 16, 17, 17, 18,
|
|
|
|
18, 20, 21, 22, 10, 24, 25, 26,
|
|
|
|
27, 28, 29, 30, 10, 32, 33, 34,
|
2014-04-03 06:20:58 -07:00
|
|
|
10, 303, 36, 36, 37, 38, 303, 38,
|
|
|
|
39, 39, 39, 40, 303, 41, 303, 42,
|
|
|
|
43, 44, 45, 44, 45, 45, 303, 46,
|
|
|
|
48, 49, 50, 51, 52, 53, 53, 303,
|
|
|
|
55, 56, 57, 58, 59, 60, 61, 309,
|
|
|
|
303, 62, 63, 64, 65, 65, 66, 66,
|
|
|
|
66, 67, 310, 312, 68, 68, 69, 312,
|
|
|
|
70, 312, 71, 316, 312, 72, 73, 74,
|
|
|
|
75, 75, 76, 76, 76, 77, 317, 319,
|
|
|
|
78, 78, 79, 319, 80, 319, 82, 82,
|
|
|
|
319, 84, 85, 85, 319, 87, 87, 319,
|
|
|
|
89, 90, 91, 92, 92, 319, 327, 93,
|
|
|
|
93, 94, 327, 95, 327, 97, 98, 97,
|
|
|
|
96, 327, 97, 97, 327, 99, 332, 101,
|
|
|
|
101, 102, 103, 332, 103, 104, 104, 104,
|
|
|
|
105, 332, 106, 332, 108, 109, 110, 332,
|
|
|
|
112, 113, 114, 115, 116, 117, 117, 332,
|
|
|
|
119, 120, 121, 122, 122, 332, 124, 125,
|
|
|
|
126, 127, 128, 129, 130, 339, 332, 131,
|
|
|
|
132, 133, 134, 134, 135, 135, 135, 136,
|
|
|
|
340, 342, 137, 137, 138, 342, 139, 342,
|
|
|
|
141, 142, 141, 140, 342, 141, 141, 342,
|
|
|
|
143, 347, 145, 145, 146, 147, 347, 147,
|
|
|
|
148, 148, 148, 149, 347, 150, 347, 152,
|
|
|
|
153, 154, 155, 156, 157, 158, 159, 160,
|
|
|
|
161, 161, 347, 163, 164, 164, 165, 165,
|
|
|
|
166, 166, 352, 168, 169, 170, 171, 172,
|
|
|
|
173, 174, 175, 176, 176, 347, 178, 179,
|
|
|
|
180, 181, 182, 183, 184, 184, 185, 185,
|
|
|
|
186, 186, 354, 188, 189, 190, 191, 191,
|
|
|
|
192, 192, 193, 355, 194, 202, 194, 203,
|
|
|
|
193, 195, 194, 194, 195, 196, 197, 198,
|
|
|
|
198, 199, 199, 199, 200, 201, 192, 192,
|
|
|
|
193, 355, 202, 203, 204, 204, 205, 194,
|
|
|
|
194, 195, 207, 208, 209, 210, 211, 212,
|
|
|
|
213, 214, 214, 215, 215, 216, 357, 217,
|
|
|
|
217, 216, 266, 215, 218, 217, 217, 218,
|
|
|
|
218, 219, 220, 221, 222, 223, 224, 225,
|
|
|
|
264, 225, 226, 265, 228, 225, 225, 226,
|
|
|
|
228, 226, 227, 228, 229, 230, 231, 232,
|
|
|
|
233, 234, 234, 235, 235, 236, 239, 241,
|
|
|
|
237, 238, 238, 237, 239, 238, 238, 240,
|
|
|
|
240, 258, 243, 242, 241, 236, 239, 242,
|
|
|
|
244, 244, 245, 257, 246, 247, 248, 249,
|
|
|
|
250, 251, 252, 252, 253, 254, 255, 255,
|
|
|
|
256, 256, 256, 259, 260, 260, 261, 261,
|
|
|
|
261, 262, 263, 240, 240, 236, 239, 241,
|
|
|
|
243, 264, 265, 225, 225, 265, 226, 228,
|
|
|
|
268, 269, 270, 271, 272, 273, 274, 275,
|
|
|
|
276, 277, 278, 278, 279, 279, 280, 280,
|
|
|
|
359, 282, 283, 284, 285, 286, 286, 347,
|
|
|
|
288, 289, 290, 291, 292, 293, 294, 295,
|
|
|
|
295, 347, 296, 297, 297, 298, 299, 300,
|
|
|
|
301, 302, 296, 296, 3, 19, 23, 31,
|
|
|
|
303, 304, 304, 305, 306, 307, 308, 311,
|
|
|
|
303, 303, 35, 47, 54, 303, 303, 303,
|
|
|
|
303, 312, 313, 313, 314, 315, 318, 312,
|
|
|
|
312, 312, 312, 312, 312, 319, 320, 320,
|
|
|
|
321, 322, 323, 324, 325, 326, 319, 319,
|
|
|
|
81, 83, 86, 88, 319, 319, 327, 328,
|
|
|
|
328, 329, 330, 331, 327, 327, 327, 327,
|
|
|
|
332, 333, 333, 334, 335, 336, 337, 338,
|
|
|
|
341, 332, 332, 100, 107, 111, 118, 123,
|
|
|
|
332, 332, 332, 332, 342, 343, 343, 344,
|
|
|
|
345, 346, 342, 342, 342, 342, 347, 348,
|
|
|
|
348, 349, 350, 351, 353, 356, 358, 360,
|
|
|
|
361, 362, 347, 347, 144, 151, 162, 167,
|
|
|
|
347, 352, 352, 177, 187, 347, 354, 354,
|
|
|
|
347, 347, 206, 347, 347, 267, 347, 359,
|
|
|
|
359, 281, 287, 347, 347
|
2014-03-29 21:07:19 -07:00
|
|
|
};
|
|
|
|
|
|
|
|
static const short _eo_tokenizer_trans_actions[] = {
|
2014-04-02 04:04:12 -07:00
|
|
|
221, 0, 1, 0, 211, 0, 244, 0,
|
|
|
|
0, 0, 0, 0, 0, 45, 0, 3,
|
|
|
|
51, 51, 325, 51, 0, 328, 0, 1,
|
|
|
|
213, 0, 0, 0, 3, 13, 286, 289,
|
|
|
|
11, 283, 11, 11, 0, 0, 1, 0,
|
|
|
|
1, 0, 0, 0, 43, 0, 0, 0,
|
|
|
|
0, 0, 0, 0, 49, 0, 0, 0,
|
|
|
|
47, 77, 0, 1, 0, 0, 61, 1,
|
|
|
|
3, 0, 1, 0, 59, 0, 223, 0,
|
|
|
|
0, 5, 253, 0, 3, 0, 256, 0,
|
|
|
|
0, 0, 0, 0, 0, 3, 0, 250,
|
|
|
|
0, 0, 0, 0, 0, 3, 0, 337,
|
|
|
|
75, 0, 0, 0, 0, 1, 3, 0,
|
|
|
|
1, 0, 0, 95, 0, 1, 0, 79,
|
|
|
|
0, 226, 0, 340, 93, 0, 0, 0,
|
|
|
|
0, 1, 3, 0, 1, 0, 0, 117,
|
|
|
|
0, 1, 0, 97, 0, 229, 0, 1,
|
|
|
|
99, 0, 0, 1, 103, 0, 1, 101,
|
|
|
|
0, 0, 0, 0, 1, 105, 133, 0,
|
2014-04-03 06:20:58 -07:00
|
|
|
1, 0, 119, 0, 232, 7, 7, 262,
|
|
|
|
0, 265, 0, 1, 121, 0, 155, 0,
|
|
|
|
1, 0, 0, 137, 1, 3, 0, 1,
|
|
|
|
0, 135, 0, 235, 0, 0, 0, 274,
|
|
|
|
0, 0, 0, 0, 0, 3, 0, 271,
|
|
|
|
0, 0, 0, 0, 1, 139, 0, 0,
|
|
|
|
0, 0, 0, 3, 0, 343, 153, 0,
|
|
|
|
0, 0, 0, 1, 3, 0, 1, 0,
|
|
|
|
0, 171, 0, 1, 0, 157, 0, 238,
|
|
|
|
9, 9, 277, 0, 280, 0, 1, 159,
|
|
|
|
0, 209, 0, 1, 0, 0, 175, 1,
|
|
|
|
3, 0, 1, 0, 173, 0, 241, 0,
|
|
|
|
0, 0, 0, 0, 0, 0, 0, 0,
|
|
|
|
0, 1, 181, 0, 0, 1, 0, 1,
|
|
|
|
3, 0, 25, 0, 0, 0, 0, 0,
|
|
|
|
0, 0, 0, 0, 1, 183, 0, 0,
|
|
|
|
0, 0, 0, 0, 0, 1, 0, 1,
|
|
|
|
3, 0, 23, 0, 0, 0, 0, 1,
|
|
|
|
0, 1, 3, 0, 15, 15, 292, 15,
|
|
|
|
0, 15, 0, 1, 0, 0, 0, 0,
|
|
|
|
1, 3, 0, 1, 0, 0, 19, 298,
|
|
|
|
301, 19, 0, 0, 3, 0, 0, 17,
|
|
|
|
295, 17, 0, 0, 0, 0, 0, 0,
|
|
|
|
0, 0, 1, 0, 1, 3, 0, 27,
|
|
|
|
304, 0, 0, 27, 27, 0, 1, 0,
|
|
|
|
1, 0, 0, 0, 0, 0, 0, 29,
|
|
|
|
29, 307, 29, 310, 29, 0, 1, 0,
|
|
|
|
0, 1, 0, 1, 0, 0, 0, 0,
|
|
|
|
0, 0, 1, 0, 1, 0, 0, 3,
|
|
|
|
3, 35, 316, 0, 35, 0, 1, 0,
|
|
|
|
1, 0, 0, 33, 0, 33, 33, 0,
|
|
|
|
0, 1, 0, 0, 0, 0, 0, 0,
|
|
|
|
0, 0, 3, 0, 39, 0, 3, 0,
|
|
|
|
41, 0, 1, 0, 0, 1, 3, 0,
|
|
|
|
1, 0, 0, 37, 319, 37, 37, 322,
|
|
|
|
37, 0, 3, 31, 313, 0, 31, 31,
|
2014-03-29 21:07:19 -07:00
|
|
|
0, 0, 0, 0, 0, 0, 0, 0,
|
|
|
|
0, 0, 0, 1, 0, 1, 3, 0,
|
2014-04-03 06:20:58 -07:00
|
|
|
21, 0, 0, 0, 0, 0, 1, 187,
|
|
|
|
0, 0, 0, 0, 0, 0, 0, 0,
|
|
|
|
1, 185, 215, 0, 1, 331, 57, 57,
|
|
|
|
57, 57, 217, 219, 0, 0, 0, 0,
|
|
|
|
65, 0, 1, 331, 334, 334, 334, 0,
|
|
|
|
67, 73, 0, 0, 0, 69, 247, 71,
|
|
|
|
63, 83, 0, 1, 331, 334, 0, 85,
|
|
|
|
91, 87, 259, 89, 81, 109, 0, 1,
|
|
|
|
331, 57, 57, 57, 57, 0, 111, 115,
|
|
|
|
0, 0, 0, 0, 113, 107, 125, 0,
|
|
|
|
1, 331, 334, 0, 127, 131, 129, 123,
|
|
|
|
143, 0, 1, 331, 57, 57, 57, 57,
|
|
|
|
0, 145, 151, 0, 0, 0, 0, 0,
|
|
|
|
147, 268, 149, 141, 163, 0, 1, 331,
|
|
|
|
334, 0, 165, 169, 167, 161, 191, 0,
|
|
|
|
1, 331, 57, 57, 57, 57, 57, 57,
|
|
|
|
57, 0, 193, 207, 0, 0, 0, 0,
|
|
|
|
199, 0, 1, 0, 0, 197, 0, 1,
|
|
|
|
203, 179, 0, 201, 177, 0, 195, 0,
|
|
|
|
1, 0, 0, 205, 189
|
2014-03-29 21:07:19 -07:00
|
|
|
};
|
|
|
|
|
|
|
|
static const short _eo_tokenizer_to_state_actions[] = {
|
|
|
|
0, 0, 0, 0, 0, 0, 0, 0,
|
|
|
|
0, 0, 0, 0, 0, 0, 0, 0,
|
|
|
|
0, 0, 0, 0, 0, 0, 0, 0,
|
|
|
|
0, 0, 0, 0, 0, 0, 0, 0,
|
|
|
|
0, 0, 0, 0, 0, 0, 0, 0,
|
|
|
|
0, 0, 0, 0, 0, 0, 0, 0,
|
|
|
|
0, 0, 0, 0, 0, 0, 0, 0,
|
|
|
|
0, 0, 0, 0, 0, 0, 0, 0,
|
|
|
|
0, 0, 0, 0, 0, 0, 0, 0,
|
|
|
|
0, 0, 0, 0, 0, 0, 0, 0,
|
|
|
|
0, 0, 0, 0, 0, 0, 0, 0,
|
|
|
|
0, 0, 0, 0, 0, 0, 0, 0,
|
|
|
|
0, 0, 0, 0, 0, 0, 0, 0,
|
|
|
|
0, 0, 0, 0, 0, 0, 0, 0,
|
|
|
|
0, 0, 0, 0, 0, 0, 0, 0,
|
|
|
|
0, 0, 0, 0, 0, 0, 0, 0,
|
|
|
|
0, 0, 0, 0, 0, 0, 0, 0,
|
|
|
|
0, 0, 0, 0, 0, 0, 0, 0,
|
|
|
|
0, 0, 0, 0, 0, 0, 0, 0,
|
|
|
|
0, 0, 0, 0, 0, 0, 0, 0,
|
|
|
|
0, 0, 0, 0, 0, 0, 0, 0,
|
|
|
|
0, 0, 0, 0, 0, 0, 0, 0,
|
|
|
|
0, 0, 0, 0, 0, 0, 0, 0,
|
|
|
|
0, 0, 0, 0, 0, 0, 0, 0,
|
|
|
|
0, 0, 0, 0, 0, 0, 0, 0,
|
|
|
|
0, 0, 0, 0, 0, 0, 0, 0,
|
|
|
|
0, 0, 0, 0, 0, 0, 0, 0,
|
|
|
|
0, 0, 0, 0, 0, 0, 0, 0,
|
|
|
|
0, 0, 0, 0, 0, 0, 0, 0,
|
|
|
|
0, 0, 0, 0, 0, 0, 0, 0,
|
|
|
|
0, 0, 0, 0, 0, 0, 0, 0,
|
|
|
|
0, 0, 0, 0, 0, 0, 0, 0,
|
|
|
|
0, 0, 0, 0, 0, 0, 0, 0,
|
|
|
|
0, 0, 0, 0, 0, 0, 0, 0,
|
|
|
|
0, 0, 0, 0, 0, 0, 0, 0,
|
|
|
|
0, 0, 0, 0, 0, 0, 0, 0,
|
2014-04-03 06:20:58 -07:00
|
|
|
0, 0, 0, 0, 0, 0, 0, 0,
|
|
|
|
53, 0, 0, 0, 0, 0, 0, 53,
|
|
|
|
0, 0, 0, 0, 0, 0, 0, 0,
|
|
|
|
53, 0, 0, 0, 0, 0, 0, 53,
|
|
|
|
0, 0, 0, 0, 0, 0, 0, 53,
|
2014-04-02 04:04:12 -07:00
|
|
|
0, 0, 0, 0, 53, 0, 0, 0,
|
2014-04-03 06:20:58 -07:00
|
|
|
0, 0, 0, 0, 0, 0, 53, 0,
|
2014-04-02 04:04:12 -07:00
|
|
|
0, 0, 0, 53, 0, 0, 0, 0,
|
2014-03-29 21:07:19 -07:00
|
|
|
0, 0, 0, 0, 0, 0, 0, 0,
|
2014-04-03 06:20:58 -07:00
|
|
|
0, 0, 0
|
2014-03-29 21:07:19 -07:00
|
|
|
};
|
|
|
|
|
|
|
|
static const short _eo_tokenizer_from_state_actions[] = {
|
|
|
|
0, 0, 0, 0, 0, 0, 0, 0,
|
|
|
|
0, 0, 0, 0, 0, 0, 0, 0,
|
|
|
|
0, 0, 0, 0, 0, 0, 0, 0,
|
|
|
|
0, 0, 0, 0, 0, 0, 0, 0,
|
|
|
|
0, 0, 0, 0, 0, 0, 0, 0,
|
|
|
|
0, 0, 0, 0, 0, 0, 0, 0,
|
|
|
|
0, 0, 0, 0, 0, 0, 0, 0,
|
|
|
|
0, 0, 0, 0, 0, 0, 0, 0,
|
|
|
|
0, 0, 0, 0, 0, 0, 0, 0,
|
|
|
|
0, 0, 0, 0, 0, 0, 0, 0,
|
|
|
|
0, 0, 0, 0, 0, 0, 0, 0,
|
|
|
|
0, 0, 0, 0, 0, 0, 0, 0,
|
|
|
|
0, 0, 0, 0, 0, 0, 0, 0,
|
|
|
|
0, 0, 0, 0, 0, 0, 0, 0,
|
|
|
|
0, 0, 0, 0, 0, 0, 0, 0,
|
|
|
|
0, 0, 0, 0, 0, 0, 0, 0,
|
|
|
|
0, 0, 0, 0, 0, 0, 0, 0,
|
|
|
|
0, 0, 0, 0, 0, 0, 0, 0,
|
|
|
|
0, 0, 0, 0, 0, 0, 0, 0,
|
|
|
|
0, 0, 0, 0, 0, 0, 0, 0,
|
|
|
|
0, 0, 0, 0, 0, 0, 0, 0,
|
|
|
|
0, 0, 0, 0, 0, 0, 0, 0,
|
|
|
|
0, 0, 0, 0, 0, 0, 0, 0,
|
|
|
|
0, 0, 0, 0, 0, 0, 0, 0,
|
|
|
|
0, 0, 0, 0, 0, 0, 0, 0,
|
|
|
|
0, 0, 0, 0, 0, 0, 0, 0,
|
|
|
|
0, 0, 0, 0, 0, 0, 0, 0,
|
|
|
|
0, 0, 0, 0, 0, 0, 0, 0,
|
|
|
|
0, 0, 0, 0, 0, 0, 0, 0,
|
|
|
|
0, 0, 0, 0, 0, 0, 0, 0,
|
|
|
|
0, 0, 0, 0, 0, 0, 0, 0,
|
|
|
|
0, 0, 0, 0, 0, 0, 0, 0,
|
|
|
|
0, 0, 0, 0, 0, 0, 0, 0,
|
|
|
|
0, 0, 0, 0, 0, 0, 0, 0,
|
|
|
|
0, 0, 0, 0, 0, 0, 0, 0,
|
|
|
|
0, 0, 0, 0, 0, 0, 0, 0,
|
2014-04-03 06:20:58 -07:00
|
|
|
0, 0, 0, 0, 0, 0, 0, 0,
|
|
|
|
55, 0, 0, 0, 0, 0, 0, 55,
|
|
|
|
0, 0, 0, 0, 0, 0, 0, 0,
|
|
|
|
55, 0, 0, 0, 0, 0, 0, 55,
|
|
|
|
0, 0, 0, 0, 0, 0, 0, 55,
|
2014-04-02 04:04:12 -07:00
|
|
|
0, 0, 0, 0, 55, 0, 0, 0,
|
2014-04-03 06:20:58 -07:00
|
|
|
0, 0, 0, 0, 0, 0, 55, 0,
|
2014-04-02 04:04:12 -07:00
|
|
|
0, 0, 0, 55, 0, 0, 0, 0,
|
2014-03-29 21:07:19 -07:00
|
|
|
0, 0, 0, 0, 0, 0, 0, 0,
|
2014-04-03 06:20:58 -07:00
|
|
|
0, 0, 0
|
2014-03-29 21:07:19 -07:00
|
|
|
};
|
|
|
|
|
|
|
|
static const short _eo_tokenizer_eof_trans[] = {
|
|
|
|
1, 1, 1, 1, 1, 1, 1, 1,
|
|
|
|
1, 1, 1, 1, 1, 1, 1, 1,
|
|
|
|
1, 1, 1, 1, 1, 1, 1, 1,
|
|
|
|
1, 1, 1, 1, 1, 1, 1, 1,
|
2014-03-31 01:31:33 -07:00
|
|
|
1, 1, 1, 58, 58, 58, 58, 58,
|
2014-03-29 21:07:19 -07:00
|
|
|
58, 58, 58, 58, 58, 58, 58, 58,
|
|
|
|
58, 58, 58, 58, 58, 58, 58, 58,
|
2014-03-31 01:31:33 -07:00
|
|
|
58, 58, 58, 58, 58, 58, 97, 97,
|
|
|
|
97, 97, 97, 97, 108, 108, 108, 108,
|
|
|
|
117, 117, 117, 117, 117, 117, 128, 128,
|
2014-03-29 21:07:19 -07:00
|
|
|
128, 128, 128, 128, 128, 128, 128, 128,
|
2014-03-31 01:31:33 -07:00
|
|
|
128, 128, 128, 128, 128, 151, 151, 151,
|
2014-04-03 06:20:58 -07:00
|
|
|
151, 151, 151, 151, 167, 167, 167, 167,
|
|
|
|
167, 167, 167, 167, 167, 167, 167, 167,
|
|
|
|
167, 167, 167, 167, 167, 167, 167, 167,
|
|
|
|
167, 167, 167, 167, 167, 167, 167, 167,
|
|
|
|
167, 167, 167, 207, 207, 207, 207, 207,
|
|
|
|
207, 218, 218, 218, 218, 218, 218, 218,
|
|
|
|
234, 234, 234, 234, 234, 234, 234, 234,
|
|
|
|
234, 234, 234, 234, 234, 234, 234, 234,
|
|
|
|
234, 234, 234, 234, 234, 234, 234, 234,
|
|
|
|
234, 234, 234, 234, 234, 234, 234, 234,
|
|
|
|
234, 234, 234, 234, 234, 234, 234, 234,
|
|
|
|
234, 234, 234, 234, 234, 234, 234, 234,
|
|
|
|
234, 234, 234, 234, 234, 234, 234, 234,
|
|
|
|
234, 234, 234, 234, 234, 234, 234, 234,
|
|
|
|
234, 234, 234, 234, 234, 234, 234, 234,
|
|
|
|
234, 234, 234, 234, 234, 234, 234, 234,
|
|
|
|
234, 234, 234, 234, 234, 234, 234, 234,
|
|
|
|
234, 234, 234, 234, 234, 234, 234, 234,
|
|
|
|
234, 234, 234, 234, 234, 234, 234, 234,
|
|
|
|
234, 234, 234, 234, 234, 234, 234, 234,
|
|
|
|
234, 234, 234, 234, 234, 234, 234, 234,
|
|
|
|
234, 234, 234, 234, 234, 234, 234, 234,
|
|
|
|
234, 234, 234, 234, 234, 234, 234, 234,
|
|
|
|
234, 234, 234, 234, 234, 234, 234, 234,
|
|
|
|
234, 234, 234, 234, 234, 234, 234, 234,
|
|
|
|
0, 483, 484, 484, 484, 484, 484, 0,
|
|
|
|
497, 498, 498, 498, 498, 502, 503, 504,
|
|
|
|
0, 512, 513, 513, 514, 515, 516, 0,
|
|
|
|
527, 528, 528, 528, 528, 528, 533, 0,
|
|
|
|
541, 542, 542, 543, 0, 554, 555, 555,
|
|
|
|
555, 555, 555, 561, 562, 563, 0, 571,
|
|
|
|
572, 572, 573, 0, 587, 588, 588, 588,
|
|
|
|
593, 588, 598, 601, 588, 604, 588, 607,
|
|
|
|
588, 588, 612
|
2014-03-29 21:07:19 -07:00
|
|
|
};
|
|
|
|
|
2014-04-03 06:20:58 -07:00
|
|
|
static const int eo_tokenizer_start = 296;
|
|
|
|
static const int eo_tokenizer_first_final = 296;
|
2014-03-29 21:07:19 -07:00
|
|
|
static const int eo_tokenizer_error = -1;
|
|
|
|
|
2014-04-03 06:20:58 -07:00
|
|
|
static const int eo_tokenizer_en_tokenize_accessor = 303;
|
|
|
|
static const int eo_tokenizer_en_tokenize_params = 312;
|
|
|
|
static const int eo_tokenizer_en_tokenize_property = 319;
|
|
|
|
static const int eo_tokenizer_en_tokenize_properties = 327;
|
|
|
|
static const int eo_tokenizer_en_tokenize_method = 332;
|
|
|
|
static const int eo_tokenizer_en_tokenize_methods = 342;
|
|
|
|
static const int eo_tokenizer_en_tokenize_class = 347;
|
|
|
|
static const int eo_tokenizer_en_main = 296;
|
2014-03-29 21:07:19 -07:00
|
|
|
|
|
|
|
|
2014-04-13 21:56:45 -07:00
|
|
|
#line 1053 "lib/eolian/eo_lexer.rl"
|
2014-03-29 21:07:19 -07:00
|
|
|
|
|
|
|
|
|
|
|
Eina_Bool
|
|
|
|
eo_tokenizer_walk(Eo_Tokenizer *toknz, const char *source)
|
|
|
|
{
|
|
|
|
INF("tokenize %s...", source);
|
|
|
|
toknz->source = eina_stringshare_add(source);
|
|
|
|
|
|
|
|
FILE *stream;
|
|
|
|
Eina_Bool ret = EINA_TRUE;
|
|
|
|
|
|
|
|
int done = 0;
|
|
|
|
int have = 0;
|
|
|
|
int offset = 0;
|
|
|
|
|
|
|
|
stream = fopen(toknz->source, "rb");
|
|
|
|
if (!stream)
|
|
|
|
{
|
|
|
|
ERR("unable to read in %s", toknz->source);
|
|
|
|
return EINA_FALSE;
|
|
|
|
}
|
|
|
|
|
|
|
|
|
2014-04-13 21:56:45 -07:00
|
|
|
#line 1339 "lib/eolian/eo_lexer.c"
|
2014-03-29 21:07:19 -07:00
|
|
|
{
|
|
|
|
toknz->cs = eo_tokenizer_start;
|
|
|
|
toknz->ts = 0;
|
|
|
|
toknz->te = 0;
|
|
|
|
toknz->act = 0;
|
|
|
|
}
|
|
|
|
|
2014-04-13 21:56:45 -07:00
|
|
|
#line 1076 "lib/eolian/eo_lexer.rl"
|
2014-03-29 21:07:19 -07:00
|
|
|
|
|
|
|
while (!done)
|
|
|
|
{
|
|
|
|
int len;
|
|
|
|
int space;
|
|
|
|
|
|
|
|
toknz->p = toknz->buf + have;
|
|
|
|
space = BUFSIZE - have;
|
|
|
|
|
|
|
|
if (space == 0)
|
|
|
|
{
|
|
|
|
fclose(stream);
|
|
|
|
ABORT(toknz, "out of buffer space");
|
|
|
|
}
|
|
|
|
|
|
|
|
len = fread(toknz->p, 1, space, stream);
|
|
|
|
if (len == 0) break;
|
|
|
|
toknz->pe = toknz->p + len;
|
|
|
|
|
|
|
|
if (len < space)
|
|
|
|
{
|
|
|
|
toknz->eof = toknz->pe;
|
|
|
|
done = 1;
|
|
|
|
}
|
|
|
|
|
|
|
|
|
2014-04-13 21:56:45 -07:00
|
|
|
#line 1374 "lib/eolian/eo_lexer.c"
|
2014-03-29 21:07:19 -07:00
|
|
|
{
|
|
|
|
int _klen;
|
|
|
|
unsigned int _trans;
|
|
|
|
const char *_acts;
|
|
|
|
unsigned int _nacts;
|
|
|
|
const char *_keys;
|
|
|
|
|
|
|
|
if ( ( toknz->p) == ( toknz->pe) )
|
|
|
|
goto _test_eof;
|
|
|
|
_resume:
|
|
|
|
_acts = _eo_tokenizer_actions + _eo_tokenizer_from_state_actions[ toknz->cs];
|
|
|
|
_nacts = (unsigned int) *_acts++;
|
|
|
|
while ( _nacts-- > 0 ) {
|
|
|
|
switch ( *_acts++ ) {
|
2014-04-02 04:04:12 -07:00
|
|
|
case 38:
|
2014-03-29 21:07:19 -07:00
|
|
|
#line 1 "NONE"
|
|
|
|
{ toknz->ts = ( toknz->p);}
|
|
|
|
break;
|
2014-04-13 21:56:45 -07:00
|
|
|
#line 1393 "lib/eolian/eo_lexer.c"
|
2014-03-29 21:07:19 -07:00
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
_keys = _eo_tokenizer_trans_keys + _eo_tokenizer_key_offsets[ toknz->cs];
|
|
|
|
_trans = _eo_tokenizer_index_offsets[ toknz->cs];
|
|
|
|
|
|
|
|
_klen = _eo_tokenizer_single_lengths[ toknz->cs];
|
|
|
|
if ( _klen > 0 ) {
|
|
|
|
const char *_lower = _keys;
|
|
|
|
const char *_mid;
|
|
|
|
const char *_upper = _keys + _klen - 1;
|
|
|
|
while (1) {
|
|
|
|
if ( _upper < _lower )
|
|
|
|
break;
|
|
|
|
|
|
|
|
_mid = _lower + ((_upper-_lower) >> 1);
|
|
|
|
if ( (*( toknz->p)) < *_mid )
|
|
|
|
_upper = _mid - 1;
|
|
|
|
else if ( (*( toknz->p)) > *_mid )
|
|
|
|
_lower = _mid + 1;
|
|
|
|
else {
|
|
|
|
_trans += (unsigned int)(_mid - _keys);
|
|
|
|
goto _match;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
_keys += _klen;
|
|
|
|
_trans += _klen;
|
|
|
|
}
|
|
|
|
|
|
|
|
_klen = _eo_tokenizer_range_lengths[ toknz->cs];
|
|
|
|
if ( _klen > 0 ) {
|
|
|
|
const char *_lower = _keys;
|
|
|
|
const char *_mid;
|
|
|
|
const char *_upper = _keys + (_klen<<1) - 2;
|
|
|
|
while (1) {
|
|
|
|
if ( _upper < _lower )
|
|
|
|
break;
|
|
|
|
|
|
|
|
_mid = _lower + (((_upper-_lower) >> 1) & ~1);
|
|
|
|
if ( (*( toknz->p)) < _mid[0] )
|
|
|
|
_upper = _mid - 2;
|
|
|
|
else if ( (*( toknz->p)) > _mid[1] )
|
|
|
|
_lower = _mid + 2;
|
|
|
|
else {
|
|
|
|
_trans += (unsigned int)((_mid - _keys)>>1);
|
|
|
|
goto _match;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
_trans += _klen;
|
|
|
|
}
|
|
|
|
|
|
|
|
_match:
|
|
|
|
_trans = _eo_tokenizer_indicies[_trans];
|
|
|
|
_eof_trans:
|
|
|
|
toknz->cs = _eo_tokenizer_trans_targs[_trans];
|
|
|
|
|
|
|
|
if ( _eo_tokenizer_trans_actions[_trans] == 0 )
|
|
|
|
goto _again;
|
|
|
|
|
|
|
|
_acts = _eo_tokenizer_actions + _eo_tokenizer_trans_actions[_trans];
|
|
|
|
_nacts = (unsigned int) *_acts++;
|
|
|
|
while ( _nacts-- > 0 )
|
|
|
|
{
|
|
|
|
switch ( *_acts++ )
|
|
|
|
{
|
|
|
|
case 0:
|
2014-04-13 21:56:45 -07:00
|
|
|
#line 386 "lib/eolian/eo_lexer.rl"
|
2014-03-29 21:07:19 -07:00
|
|
|
{
|
|
|
|
toknz->current_line += 1;
|
|
|
|
DBG("inc[%d] %d", toknz->cs, toknz->current_line);
|
|
|
|
}
|
|
|
|
break;
|
|
|
|
case 1:
|
2014-04-13 21:56:45 -07:00
|
|
|
#line 391 "lib/eolian/eo_lexer.rl"
|
2014-03-29 21:07:19 -07:00
|
|
|
{
|
|
|
|
toknz->saved.line = toknz->current_line;
|
|
|
|
DBG("save line[%d] %d", toknz->cs, toknz->current_line);
|
|
|
|
}
|
|
|
|
break;
|
|
|
|
case 2:
|
2014-04-13 21:56:45 -07:00
|
|
|
#line 396 "lib/eolian/eo_lexer.rl"
|
2014-03-29 21:07:19 -07:00
|
|
|
{
|
|
|
|
toknz->saved.tok = ( toknz->p);
|
|
|
|
DBG("save token[%d] %p %c", toknz->cs, ( toknz->p), *( toknz->p));
|
|
|
|
}
|
|
|
|
break;
|
|
|
|
case 3:
|
2014-04-13 21:56:45 -07:00
|
|
|
#line 473 "lib/eolian/eo_lexer.rl"
|
2014-03-29 21:07:19 -07:00
|
|
|
{
|
|
|
|
if (!toknz->tmp.accessor) ABORT(toknz, "No accessor!!!");
|
|
|
|
if (toknz->tmp.accessor->ret != NULL)
|
|
|
|
ABORT(toknz, "accessor has already a return type");
|
|
|
|
toknz->tmp.accessor->ret = _eo_tokenizer_return_get(toknz, ( toknz->p));
|
|
|
|
}
|
|
|
|
break;
|
|
|
|
case 4:
|
2014-04-13 21:56:45 -07:00
|
|
|
#line 480 "lib/eolian/eo_lexer.rl"
|
2014-03-29 21:07:19 -07:00
|
|
|
{
|
|
|
|
if (!toknz->tmp.accessor) ABORT(toknz, "No accessor!!!");
|
|
|
|
if (!toknz->tmp.accessor->ret) ABORT(toknz, "No ret!!!");
|
|
|
|
if (toknz->tmp.accessor->ret->comment != NULL)
|
|
|
|
ABORT(toknz, "accessor return type has already a comment");
|
|
|
|
toknz->tmp.accessor->ret->comment = _eo_tokenizer_token_get(toknz, ( toknz->p)-2);
|
|
|
|
INF(" %s", toknz->tmp.accessor->ret->comment);
|
|
|
|
}
|
|
|
|
break;
|
|
|
|
case 5:
|
2014-04-13 21:56:45 -07:00
|
|
|
#line 489 "lib/eolian/eo_lexer.rl"
|
2014-03-29 21:07:19 -07:00
|
|
|
{
|
|
|
|
if (!toknz->tmp.accessor) ABORT(toknz, "No accessor!!!");
|
|
|
|
toknz->tmp.accessor->legacy = _eo_tokenizer_token_get(toknz, ( toknz->p));
|
|
|
|
}
|
|
|
|
break;
|
|
|
|
case 6:
|
2014-04-13 21:56:45 -07:00
|
|
|
#line 503 "lib/eolian/eo_lexer.rl"
|
2014-03-29 21:07:19 -07:00
|
|
|
{
|
|
|
|
toknz->tmp.accessor_param = _eo_tokenizer_accessor_param_get(toknz, ( toknz->p));
|
|
|
|
}
|
|
|
|
break;
|
|
|
|
case 7:
|
2014-04-13 21:56:45 -07:00
|
|
|
#line 507 "lib/eolian/eo_lexer.rl"
|
2014-03-29 21:07:19 -07:00
|
|
|
{
|
|
|
|
if (!toknz->tmp.accessor_param)
|
|
|
|
ABORT(toknz, "No accessor param!!!");
|
|
|
|
toknz->tmp.accessor_param->attrs = _eo_tokenizer_token_get(toknz, ( toknz->p));
|
|
|
|
toknz->tmp.accessor->params =
|
|
|
|
eina_list_append(toknz->tmp.accessor->params, toknz->tmp.accessor_param);
|
|
|
|
toknz->tmp.accessor_param = NULL;
|
|
|
|
}
|
|
|
|
break;
|
|
|
|
case 8:
|
2014-04-13 21:56:45 -07:00
|
|
|
#line 536 "lib/eolian/eo_lexer.rl"
|
2014-03-29 21:07:19 -07:00
|
|
|
{
|
|
|
|
const char *c = _eo_tokenizer_token_get(toknz, ( toknz->p)-2);
|
|
|
|
if (toknz->tmp.param == NULL)
|
|
|
|
ABORT(toknz, "no parameter set to associate this comment to: %s", c);
|
|
|
|
toknz->tmp.param->comment = c;
|
|
|
|
toknz->tmp.param = NULL;
|
|
|
|
}
|
|
|
|
break;
|
|
|
|
case 9:
|
2014-04-13 21:56:45 -07:00
|
|
|
#line 544 "lib/eolian/eo_lexer.rl"
|
2014-03-29 21:07:19 -07:00
|
|
|
{
|
|
|
|
toknz->tmp.param = _eo_tokenizer_param_get(toknz, ( toknz->p));
|
|
|
|
if (toknz->tmp.params)
|
|
|
|
*(toknz->tmp.params) = eina_list_append(*(toknz->tmp.params), toknz->tmp.param);
|
|
|
|
else
|
|
|
|
ABORT(toknz, "got a param but there is no property nor method waiting for it");
|
|
|
|
INF(" %s : %s", toknz->tmp.param->name, toknz->tmp.param->type);
|
|
|
|
}
|
|
|
|
break;
|
|
|
|
case 10:
|
2014-04-03 06:20:58 -07:00
|
|
|
#line 642 "lib/eolian/eo_lexer.rl"
|
2014-03-29 21:07:19 -07:00
|
|
|
{
|
|
|
|
if (toknz->tmp.prop != NULL)
|
|
|
|
ABORT(toknz, "there is a pending property definition %s", toknz->tmp.prop->name);
|
|
|
|
toknz->tmp.prop = _eo_tokenizer_property_get(toknz, ( toknz->p));
|
|
|
|
}
|
|
|
|
break;
|
|
|
|
case 11:
|
2014-04-03 06:20:58 -07:00
|
|
|
#line 682 "lib/eolian/eo_lexer.rl"
|
2014-03-29 21:07:19 -07:00
|
|
|
{
|
|
|
|
if (!toknz->tmp.meth) ABORT(toknz, "No method!!!");
|
|
|
|
if (toknz->tmp.meth->ret != NULL)
|
|
|
|
ABORT(toknz, "method '%s' has already a return type", toknz->tmp.meth->name);
|
|
|
|
toknz->tmp.meth->ret = _eo_tokenizer_return_get(toknz, ( toknz->p));
|
|
|
|
}
|
|
|
|
break;
|
|
|
|
case 12:
|
2014-04-03 06:20:58 -07:00
|
|
|
#line 689 "lib/eolian/eo_lexer.rl"
|
2014-03-29 21:07:19 -07:00
|
|
|
{
|
|
|
|
if (!toknz->tmp.meth) ABORT(toknz, "No method!!!");
|
|
|
|
if (toknz->tmp.meth->ret != NULL) ABORT(toknz, "No ret!!!");
|
|
|
|
if (toknz->tmp.meth->ret->comment != NULL)
|
|
|
|
ABORT(toknz, "method '%s' return type has already a comment", toknz->tmp.meth->name);
|
|
|
|
toknz->tmp.meth->ret->comment = _eo_tokenizer_token_get(toknz, ( toknz->p)-2);
|
|
|
|
INF(" %s", toknz->tmp.meth->ret->comment);
|
|
|
|
}
|
|
|
|
break;
|
|
|
|
case 13:
|
2014-04-03 06:20:58 -07:00
|
|
|
#line 698 "lib/eolian/eo_lexer.rl"
|
2014-03-29 21:07:19 -07:00
|
|
|
{
|
|
|
|
if (!toknz->tmp.meth) ABORT(toknz, "No method!!!");
|
|
|
|
toknz->tmp.meth->legacy = _eo_tokenizer_token_get(toknz, ( toknz->p));
|
|
|
|
}
|
|
|
|
break;
|
|
|
|
case 14:
|
2014-04-03 06:20:58 -07:00
|
|
|
#line 703 "lib/eolian/eo_lexer.rl"
|
2014-03-29 21:07:19 -07:00
|
|
|
{
|
|
|
|
if (!toknz->tmp.meth) ABORT(toknz, "No method!!!");
|
|
|
|
toknz->tmp.meth->obj_const = EINA_TRUE;
|
|
|
|
INF(" obj const");
|
|
|
|
}
|
|
|
|
break;
|
|
|
|
case 15:
|
2014-04-13 21:56:45 -07:00
|
|
|
#line 763 "lib/eolian/eo_lexer.rl"
|
2014-03-29 21:07:19 -07:00
|
|
|
{
|
|
|
|
if (toknz->tmp.meth != NULL)
|
|
|
|
ABORT(toknz, "there is a pending method definition %s", toknz->tmp.meth->name);
|
|
|
|
toknz->tmp.meth = _eo_tokenizer_method_get(toknz, ( toknz->p));
|
|
|
|
}
|
|
|
|
break;
|
|
|
|
case 16:
|
2014-04-13 21:56:45 -07:00
|
|
|
#line 795 "lib/eolian/eo_lexer.rl"
|
2014-03-29 21:07:19 -07:00
|
|
|
{
|
|
|
|
const char *base = _eo_tokenizer_token_get(toknz, ( toknz->p));
|
|
|
|
toknz->tmp.str_items = eina_list_append(toknz->tmp.str_items, base);
|
|
|
|
}
|
|
|
|
break;
|
|
|
|
case 17:
|
2014-04-13 21:56:45 -07:00
|
|
|
#line 800 "lib/eolian/eo_lexer.rl"
|
2014-03-29 21:07:19 -07:00
|
|
|
{
|
|
|
|
if (!toknz->tmp.kls) ABORT(toknz, "No class!!!");
|
|
|
|
toknz->tmp.kls->inherits = toknz->tmp.str_items;
|
|
|
|
toknz->tmp.str_items = NULL;
|
|
|
|
}
|
|
|
|
break;
|
|
|
|
case 18:
|
2014-04-13 21:56:45 -07:00
|
|
|
#line 848 "lib/eolian/eo_lexer.rl"
|
2014-03-29 21:07:19 -07:00
|
|
|
{
|
|
|
|
if (!toknz->tmp.kls) ABORT(toknz, "No class!!!");
|
|
|
|
toknz->tmp.event = _eo_tokenizer_event_get(toknz, ( toknz->p));
|
|
|
|
toknz->tmp.kls->events = eina_list_append(toknz->tmp.kls->events, toknz->tmp.event);
|
|
|
|
}
|
|
|
|
break;
|
|
|
|
case 19:
|
2014-04-13 21:56:45 -07:00
|
|
|
#line 854 "lib/eolian/eo_lexer.rl"
|
2014-03-29 21:07:19 -07:00
|
|
|
{
|
|
|
|
if (!toknz->tmp.event) ABORT(toknz, "No event!!!");
|
2014-04-02 04:04:12 -07:00
|
|
|
if (toknz->tmp.event->type != NULL)
|
|
|
|
ABORT(toknz, "event %s has already a type %s", toknz->tmp.event->name, toknz->tmp.event->type);
|
|
|
|
toknz->tmp.event->type = _eo_tokenizer_token_get(toknz, ( toknz->p)-1);
|
|
|
|
}
|
|
|
|
break;
|
|
|
|
case 20:
|
2014-04-13 21:56:45 -07:00
|
|
|
#line 861 "lib/eolian/eo_lexer.rl"
|
2014-04-02 04:04:12 -07:00
|
|
|
{
|
|
|
|
if (!toknz->tmp.event) ABORT(toknz, "No event!!!");
|
2014-03-29 21:07:19 -07:00
|
|
|
if (toknz->tmp.event->comment != NULL)
|
|
|
|
ABORT(toknz, "event %s has already a comment", toknz->tmp.event->name);
|
|
|
|
toknz->tmp.event->comment = _eo_tokenizer_token_get(toknz, ( toknz->p)-2);
|
|
|
|
toknz->tmp.event = NULL;
|
|
|
|
}
|
|
|
|
break;
|
2014-04-02 04:04:12 -07:00
|
|
|
case 21:
|
2014-04-13 21:56:45 -07:00
|
|
|
#line 869 "lib/eolian/eo_lexer.rl"
|
2014-03-29 21:07:19 -07:00
|
|
|
{
|
|
|
|
if (!toknz->tmp.kls) ABORT(toknz, "No class!!!");
|
|
|
|
if (toknz->tmp.kls->legacy_prefix != NULL)
|
|
|
|
ABORT(toknz, "A legacy prefix has already been given");
|
|
|
|
toknz->tmp.kls->legacy_prefix = _eo_tokenizer_token_get(toknz, ( toknz->p));
|
|
|
|
}
|
|
|
|
break;
|
2014-04-02 04:04:12 -07:00
|
|
|
case 22:
|
2014-04-13 21:56:45 -07:00
|
|
|
#line 878 "lib/eolian/eo_lexer.rl"
|
2014-03-29 21:07:19 -07:00
|
|
|
{
|
|
|
|
if (!toknz->tmp.kls) ABORT(toknz, "No class!!!");
|
|
|
|
if (toknz->tmp.kls->eo_prefix != NULL)
|
|
|
|
ABORT(toknz, "An Eo prefix has already been given");
|
|
|
|
toknz->tmp.kls->eo_prefix = _eo_tokenizer_token_get(toknz, ( toknz->p));
|
|
|
|
}
|
|
|
|
break;
|
2014-04-02 04:04:12 -07:00
|
|
|
case 23:
|
2014-04-13 21:56:45 -07:00
|
|
|
#line 887 "lib/eolian/eo_lexer.rl"
|
2014-03-29 21:07:19 -07:00
|
|
|
{
|
|
|
|
if (!toknz->tmp.kls) ABORT(toknz, "No class!!!");
|
|
|
|
if (toknz->tmp.kls->data_type != NULL)
|
|
|
|
ABORT(toknz, "A data type has already been given");
|
|
|
|
toknz->tmp.kls->data_type = _eo_tokenizer_token_get(toknz, ( toknz->p));
|
|
|
|
}
|
|
|
|
break;
|
2014-04-02 04:04:12 -07:00
|
|
|
case 24:
|
2014-04-13 21:56:45 -07:00
|
|
|
#line 900 "lib/eolian/eo_lexer.rl"
|
2014-03-29 21:07:19 -07:00
|
|
|
{
|
|
|
|
if (!toknz->tmp.kls) ABORT(toknz, "No class!!!");
|
|
|
|
toknz->tmp.impl = _eo_tokenizer_implement_get(toknz, ( toknz->p));
|
|
|
|
toknz->tmp.kls->implements = eina_list_append(toknz->tmp.kls->implements, toknz->tmp.impl);
|
|
|
|
}
|
|
|
|
break;
|
2014-04-02 04:04:12 -07:00
|
|
|
case 25:
|
2014-04-13 21:56:45 -07:00
|
|
|
#line 906 "lib/eolian/eo_lexer.rl"
|
2014-03-29 21:07:19 -07:00
|
|
|
{
|
|
|
|
if (!toknz->tmp.impl) ABORT(toknz, "No implement!!!");
|
|
|
|
if (toknz->tmp.impl->legacy)
|
|
|
|
ABORT(toknz, "Legacy section already allocated for implement item");
|
|
|
|
toknz->tmp.impl->legacy = calloc(1, sizeof(Eo_Implement_Legacy_Def));
|
|
|
|
}
|
|
|
|
break;
|
2014-04-02 04:04:12 -07:00
|
|
|
case 26:
|
2014-04-13 21:56:45 -07:00
|
|
|
#line 913 "lib/eolian/eo_lexer.rl"
|
2014-03-29 21:07:19 -07:00
|
|
|
{
|
|
|
|
if (!toknz->tmp.impl) ABORT(toknz, "No implement!!!");
|
|
|
|
if (!toknz->tmp.impl->legacy)
|
|
|
|
ABORT(toknz, "No legacy section");
|
|
|
|
toknz->tmp.impl->legacy->function_name = _eo_tokenizer_token_get(toknz, ( toknz->p));
|
|
|
|
}
|
|
|
|
break;
|
2014-04-02 04:04:12 -07:00
|
|
|
case 27:
|
2014-04-13 21:56:45 -07:00
|
|
|
#line 920 "lib/eolian/eo_lexer.rl"
|
2014-03-29 21:07:19 -07:00
|
|
|
{
|
|
|
|
if (!toknz->tmp.impl) ABORT(toknz, "No implement!!!");
|
|
|
|
toknz->tmp.impl_leg_param = calloc(1, sizeof(Eo_Implement_Legacy_Param_Def));
|
|
|
|
toknz->tmp.impl->legacy->params = eina_list_append(
|
|
|
|
toknz->tmp.impl->legacy->params, toknz->tmp.impl_leg_param);
|
|
|
|
|
|
|
|
toknz->tmp.impl_leg_param->eo_name = _eo_tokenizer_token_get(toknz, ( toknz->p));
|
|
|
|
}
|
|
|
|
break;
|
2014-04-02 04:04:12 -07:00
|
|
|
case 28:
|
2014-04-13 21:56:45 -07:00
|
|
|
#line 929 "lib/eolian/eo_lexer.rl"
|
2014-03-29 21:07:19 -07:00
|
|
|
{
|
|
|
|
if (!toknz->tmp.impl_leg_param)
|
|
|
|
ABORT(toknz, "No implement legacy param!!!");
|
|
|
|
toknz->tmp.impl_leg_param->legacy_name = _eo_tokenizer_token_get(toknz, ( toknz->p));
|
|
|
|
}
|
|
|
|
break;
|
2014-04-02 04:04:12 -07:00
|
|
|
case 29:
|
2014-04-13 21:56:45 -07:00
|
|
|
#line 935 "lib/eolian/eo_lexer.rl"
|
2014-03-29 21:07:19 -07:00
|
|
|
{
|
|
|
|
if (!toknz->tmp.impl_leg_param)
|
|
|
|
ABORT(toknz, "No implement legacy param!!!");
|
|
|
|
toknz->tmp.impl_leg_param->comment = _eo_tokenizer_token_get(toknz, ( toknz->p)-2);
|
|
|
|
}
|
|
|
|
break;
|
2014-04-02 04:04:12 -07:00
|
|
|
case 30:
|
2014-04-13 21:56:45 -07:00
|
|
|
#line 941 "lib/eolian/eo_lexer.rl"
|
2014-03-29 21:07:19 -07:00
|
|
|
{
|
|
|
|
if (!toknz->tmp.impl) ABORT(toknz, "No implement!!!");
|
|
|
|
if (!toknz->tmp.impl->legacy)
|
|
|
|
ABORT(toknz, "No legacy section");
|
|
|
|
toknz->tmp.impl->legacy->ret_type= _eo_tokenizer_token_get(toknz, ( toknz->p));
|
|
|
|
}
|
|
|
|
break;
|
2014-04-02 04:04:12 -07:00
|
|
|
case 31:
|
2014-04-13 21:56:45 -07:00
|
|
|
#line 948 "lib/eolian/eo_lexer.rl"
|
2014-03-29 21:07:19 -07:00
|
|
|
{
|
|
|
|
if (!toknz->tmp.impl) ABORT(toknz, "No implement!!!");
|
|
|
|
if (!toknz->tmp.impl->legacy)
|
|
|
|
ABORT(toknz, "No legacy section");
|
|
|
|
toknz->tmp.impl->legacy->ret_value = _eo_tokenizer_token_get(toknz, ( toknz->p));
|
|
|
|
}
|
|
|
|
break;
|
2014-04-02 04:04:12 -07:00
|
|
|
case 32:
|
2014-04-13 21:56:45 -07:00
|
|
|
#line 1019 "lib/eolian/eo_lexer.rl"
|
2014-03-29 21:07:19 -07:00
|
|
|
{
|
|
|
|
toknz->tmp.kls_type = EOLIAN_CLASS_REGULAR;
|
|
|
|
}
|
|
|
|
break;
|
2014-04-02 04:04:12 -07:00
|
|
|
case 33:
|
2014-04-13 21:56:45 -07:00
|
|
|
#line 1022 "lib/eolian/eo_lexer.rl"
|
2014-03-29 21:07:19 -07:00
|
|
|
{
|
|
|
|
toknz->tmp.kls_type = EOLIAN_CLASS_ABSTRACT;
|
|
|
|
}
|
|
|
|
break;
|
2014-04-02 04:04:12 -07:00
|
|
|
case 34:
|
2014-04-13 21:56:45 -07:00
|
|
|
#line 1025 "lib/eolian/eo_lexer.rl"
|
2014-03-29 21:07:19 -07:00
|
|
|
{
|
|
|
|
toknz->tmp.kls_type = EOLIAN_CLASS_MIXIN;
|
|
|
|
}
|
|
|
|
break;
|
2014-04-02 04:04:12 -07:00
|
|
|
case 35:
|
2014-04-13 21:56:45 -07:00
|
|
|
#line 1028 "lib/eolian/eo_lexer.rl"
|
2014-03-29 21:07:19 -07:00
|
|
|
{
|
|
|
|
toknz->tmp.kls_type = EOLIAN_CLASS_INTERFACE;
|
|
|
|
}
|
|
|
|
break;
|
2014-04-02 04:04:12 -07:00
|
|
|
case 36:
|
2014-04-13 21:56:45 -07:00
|
|
|
#line 1032 "lib/eolian/eo_lexer.rl"
|
2014-03-29 21:07:19 -07:00
|
|
|
{
|
|
|
|
if (toknz->tmp.kls != NULL)
|
|
|
|
ABORT(toknz, "there is a pending class definition %s", toknz->tmp.kls->name);
|
|
|
|
toknz->tmp.kls = _eo_tokenizer_class_get(toknz, ( toknz->p));
|
|
|
|
toknz->tmp.kls->type = toknz->tmp.kls_type;
|
|
|
|
}
|
|
|
|
break;
|
2014-04-02 04:04:12 -07:00
|
|
|
case 39:
|
2014-03-29 21:07:19 -07:00
|
|
|
#line 1 "NONE"
|
|
|
|
{ toknz->te = ( toknz->p)+1;}
|
|
|
|
break;
|
2014-04-02 04:04:12 -07:00
|
|
|
case 40:
|
2014-04-13 21:56:45 -07:00
|
|
|
#line 465 "lib/eolian/eo_lexer.rl"
|
2014-03-29 21:07:19 -07:00
|
|
|
{ toknz->te = ( toknz->p)+1;{
|
|
|
|
if (!toknz->tmp.accessor) ABORT(toknz, "No accessor!!!");
|
|
|
|
if (toknz->tmp.accessor->comment != NULL)
|
|
|
|
ABORT(toknz, "accessor has already a comment");
|
|
|
|
toknz->tmp.accessor->comment = _eo_tokenizer_token_get(toknz, ( toknz->p)-1);
|
|
|
|
INF(" %s", toknz->tmp.accessor->comment);
|
|
|
|
}}
|
|
|
|
break;
|
2014-04-02 04:04:12 -07:00
|
|
|
case 41:
|
2014-04-13 21:56:45 -07:00
|
|
|
#line 401 "lib/eolian/eo_lexer.rl"
|
2014-03-29 21:07:19 -07:00
|
|
|
{ toknz->te = ( toknz->p)+1;{
|
|
|
|
DBG("comment[%d] line%03d:%03d", toknz->cs,
|
|
|
|
toknz->saved.line, toknz->current_line);
|
|
|
|
}}
|
|
|
|
break;
|
2014-04-02 04:04:12 -07:00
|
|
|
case 42:
|
2014-04-13 21:56:45 -07:00
|
|
|
#line 528 "lib/eolian/eo_lexer.rl"
|
2014-03-29 21:07:19 -07:00
|
|
|
{ toknz->te = ( toknz->p)+1;}
|
|
|
|
break;
|
2014-04-02 04:04:12 -07:00
|
|
|
case 43:
|
2014-04-13 21:56:45 -07:00
|
|
|
#line 529 "lib/eolian/eo_lexer.rl"
|
2014-03-29 21:07:19 -07:00
|
|
|
{ toknz->te = ( toknz->p)+1;}
|
|
|
|
break;
|
2014-04-02 04:04:12 -07:00
|
|
|
case 44:
|
2014-04-13 21:56:45 -07:00
|
|
|
#line 494 "lib/eolian/eo_lexer.rl"
|
2014-03-29 21:07:19 -07:00
|
|
|
{ toknz->te = ( toknz->p)+1;{
|
|
|
|
INF(" }");
|
|
|
|
if (!toknz->tmp.prop) ABORT(toknz, "No prop!!!");
|
|
|
|
toknz->tmp.prop->accessors = eina_list_append(toknz->tmp.prop->accessors, toknz->tmp.accessor);
|
|
|
|
toknz->tmp.accessor = NULL;
|
|
|
|
toknz->current_nesting--;
|
2014-04-03 06:20:58 -07:00
|
|
|
{ toknz->cs = 319; goto _again;}
|
2014-03-29 21:07:19 -07:00
|
|
|
}}
|
|
|
|
break;
|
2014-04-02 04:04:12 -07:00
|
|
|
case 45:
|
2014-04-13 21:56:45 -07:00
|
|
|
#line 410 "lib/eolian/eo_lexer.rl"
|
2014-03-29 21:07:19 -07:00
|
|
|
{ toknz->te = ( toknz->p)+1;{
|
|
|
|
DBG("error[%d]", toknz->cs);
|
|
|
|
char *s, *d;
|
|
|
|
char buf[BUFSIZE];
|
|
|
|
for (s = ( toknz->p), d = buf; (s <= toknz->pe); s++)
|
|
|
|
{
|
|
|
|
if ((*s == '\r') || (*s == '\n'))
|
|
|
|
break;
|
|
|
|
*d++ = *s;
|
|
|
|
}
|
|
|
|
*d = '\0';
|
|
|
|
ERR("error n:%d l:%d c:'%c': %s",
|
|
|
|
toknz->current_nesting, toknz->current_line, *( toknz->p), buf);
|
|
|
|
toknz->cs = eo_tokenizer_error;
|
|
|
|
{( toknz->p)++; goto _out; } /* necessary to stop scanners */
|
|
|
|
}}
|
|
|
|
break;
|
2014-04-02 04:04:12 -07:00
|
|
|
case 46:
|
2014-04-13 21:56:45 -07:00
|
|
|
#line 524 "lib/eolian/eo_lexer.rl"
|
2014-03-29 21:07:19 -07:00
|
|
|
{ toknz->te = ( toknz->p);( toknz->p)--;}
|
|
|
|
break;
|
2014-04-02 04:04:12 -07:00
|
|
|
case 47:
|
2014-04-13 21:56:45 -07:00
|
|
|
#line 527 "lib/eolian/eo_lexer.rl"
|
2014-03-29 21:07:19 -07:00
|
|
|
{ toknz->te = ( toknz->p);( toknz->p)--;}
|
|
|
|
break;
|
2014-04-02 04:04:12 -07:00
|
|
|
case 48:
|
2014-04-13 21:56:45 -07:00
|
|
|
#line 494 "lib/eolian/eo_lexer.rl"
|
2014-03-29 21:07:19 -07:00
|
|
|
{ toknz->te = ( toknz->p);( toknz->p)--;{
|
|
|
|
INF(" }");
|
|
|
|
if (!toknz->tmp.prop) ABORT(toknz, "No prop!!!");
|
|
|
|
toknz->tmp.prop->accessors = eina_list_append(toknz->tmp.prop->accessors, toknz->tmp.accessor);
|
|
|
|
toknz->tmp.accessor = NULL;
|
|
|
|
toknz->current_nesting--;
|
2014-04-03 06:20:58 -07:00
|
|
|
{ toknz->cs = 319; goto _again;}
|
2014-03-29 21:07:19 -07:00
|
|
|
}}
|
|
|
|
break;
|
2014-04-02 04:04:12 -07:00
|
|
|
case 49:
|
2014-04-13 21:56:45 -07:00
|
|
|
#line 410 "lib/eolian/eo_lexer.rl"
|
2014-03-29 21:07:19 -07:00
|
|
|
{ toknz->te = ( toknz->p);( toknz->p)--;{
|
|
|
|
DBG("error[%d]", toknz->cs);
|
|
|
|
char *s, *d;
|
|
|
|
char buf[BUFSIZE];
|
|
|
|
for (s = ( toknz->p), d = buf; (s <= toknz->pe); s++)
|
|
|
|
{
|
|
|
|
if ((*s == '\r') || (*s == '\n'))
|
|
|
|
break;
|
|
|
|
*d++ = *s;
|
|
|
|
}
|
|
|
|
*d = '\0';
|
|
|
|
ERR("error n:%d l:%d c:'%c': %s",
|
|
|
|
toknz->current_nesting, toknz->current_line, *( toknz->p), buf);
|
|
|
|
toknz->cs = eo_tokenizer_error;
|
|
|
|
{( toknz->p)++; goto _out; } /* necessary to stop scanners */
|
|
|
|
}}
|
|
|
|
break;
|
2014-04-02 04:04:12 -07:00
|
|
|
case 50:
|
2014-04-13 21:56:45 -07:00
|
|
|
#line 527 "lib/eolian/eo_lexer.rl"
|
2014-03-29 21:07:19 -07:00
|
|
|
{{( toknz->p) = (( toknz->te))-1;}}
|
|
|
|
break;
|
2014-04-02 04:04:12 -07:00
|
|
|
case 51:
|
2014-04-13 21:56:45 -07:00
|
|
|
#line 410 "lib/eolian/eo_lexer.rl"
|
2014-03-29 21:07:19 -07:00
|
|
|
{{( toknz->p) = (( toknz->te))-1;}{
|
|
|
|
DBG("error[%d]", toknz->cs);
|
|
|
|
char *s, *d;
|
|
|
|
char buf[BUFSIZE];
|
|
|
|
for (s = ( toknz->p), d = buf; (s <= toknz->pe); s++)
|
|
|
|
{
|
|
|
|
if ((*s == '\r') || (*s == '\n'))
|
|
|
|
break;
|
|
|
|
*d++ = *s;
|
|
|
|
}
|
|
|
|
*d = '\0';
|
|
|
|
ERR("error n:%d l:%d c:'%c': %s",
|
|
|
|
toknz->current_nesting, toknz->current_line, *( toknz->p), buf);
|
|
|
|
toknz->cs = eo_tokenizer_error;
|
|
|
|
{( toknz->p)++; goto _out; } /* necessary to stop scanners */
|
|
|
|
}}
|
|
|
|
break;
|
2014-04-02 04:04:12 -07:00
|
|
|
case 52:
|
2014-04-13 21:56:45 -07:00
|
|
|
#line 401 "lib/eolian/eo_lexer.rl"
|
2014-03-29 21:07:19 -07:00
|
|
|
{ toknz->te = ( toknz->p)+1;{
|
|
|
|
DBG("comment[%d] line%03d:%03d", toknz->cs,
|
|
|
|
toknz->saved.line, toknz->current_line);
|
|
|
|
}}
|
|
|
|
break;
|
2014-04-02 04:04:12 -07:00
|
|
|
case 53:
|
2014-04-13 21:56:45 -07:00
|
|
|
#line 553 "lib/eolian/eo_lexer.rl"
|
2014-03-29 21:07:19 -07:00
|
|
|
{ toknz->te = ( toknz->p)+1;{
|
|
|
|
INF(" }");
|
|
|
|
toknz->tmp.param = NULL;
|
|
|
|
toknz->current_nesting--;
|
|
|
|
if (toknz->tmp.prop)
|
2014-04-03 06:20:58 -07:00
|
|
|
{ toknz->cs = 319; goto _again;}
|
2014-03-29 21:07:19 -07:00
|
|
|
else if (toknz->tmp.meth)
|
2014-04-03 06:20:58 -07:00
|
|
|
{ toknz->cs = 332; goto _again;}
|
2014-03-29 21:07:19 -07:00
|
|
|
else
|
|
|
|
ABORT(toknz, "leaving tokenize_params but there is no property nor method pending");
|
|
|
|
}}
|
|
|
|
break;
|
2014-04-02 04:04:12 -07:00
|
|
|
case 54:
|
2014-04-13 21:56:45 -07:00
|
|
|
#line 410 "lib/eolian/eo_lexer.rl"
|
2014-03-29 21:07:19 -07:00
|
|
|
{ toknz->te = ( toknz->p)+1;{
|
|
|
|
DBG("error[%d]", toknz->cs);
|
|
|
|
char *s, *d;
|
|
|
|
char buf[BUFSIZE];
|
|
|
|
for (s = ( toknz->p), d = buf; (s <= toknz->pe); s++)
|
|
|
|
{
|
|
|
|
if ((*s == '\r') || (*s == '\n'))
|
|
|
|
break;
|
|
|
|
*d++ = *s;
|
|
|
|
}
|
|
|
|
*d = '\0';
|
|
|
|
ERR("error n:%d l:%d c:'%c': %s",
|
|
|
|
toknz->current_nesting, toknz->current_line, *( toknz->p), buf);
|
|
|
|
toknz->cs = eo_tokenizer_error;
|
|
|
|
{( toknz->p)++; goto _out; } /* necessary to stop scanners */
|
|
|
|
}}
|
|
|
|
break;
|
2014-04-02 04:04:12 -07:00
|
|
|
case 55:
|
2014-04-13 21:56:45 -07:00
|
|
|
#line 569 "lib/eolian/eo_lexer.rl"
|
2014-03-29 21:07:19 -07:00
|
|
|
{ toknz->te = ( toknz->p);( toknz->p)--;}
|
|
|
|
break;
|
2014-04-02 04:04:12 -07:00
|
|
|
case 56:
|
2014-04-13 21:56:45 -07:00
|
|
|
#line 571 "lib/eolian/eo_lexer.rl"
|
2014-03-29 21:07:19 -07:00
|
|
|
{ toknz->te = ( toknz->p);( toknz->p)--;}
|
|
|
|
break;
|
2014-04-02 04:04:12 -07:00
|
|
|
case 57:
|
2014-04-13 21:56:45 -07:00
|
|
|
#line 553 "lib/eolian/eo_lexer.rl"
|
2014-03-29 21:07:19 -07:00
|
|
|
{ toknz->te = ( toknz->p);( toknz->p)--;{
|
|
|
|
INF(" }");
|
|
|
|
toknz->tmp.param = NULL;
|
|
|
|
toknz->current_nesting--;
|
|
|
|
if (toknz->tmp.prop)
|
2014-04-03 06:20:58 -07:00
|
|
|
{ toknz->cs = 319; goto _again;}
|
2014-03-29 21:07:19 -07:00
|
|
|
else if (toknz->tmp.meth)
|
2014-04-03 06:20:58 -07:00
|
|
|
{ toknz->cs = 332; goto _again;}
|
2014-03-29 21:07:19 -07:00
|
|
|
else
|
|
|
|
ABORT(toknz, "leaving tokenize_params but there is no property nor method pending");
|
|
|
|
}}
|
|
|
|
break;
|
2014-04-02 04:04:12 -07:00
|
|
|
case 58:
|
2014-04-13 21:56:45 -07:00
|
|
|
#line 410 "lib/eolian/eo_lexer.rl"
|
2014-03-29 21:07:19 -07:00
|
|
|
{ toknz->te = ( toknz->p);( toknz->p)--;{
|
|
|
|
DBG("error[%d]", toknz->cs);
|
|
|
|
char *s, *d;
|
|
|
|
char buf[BUFSIZE];
|
|
|
|
for (s = ( toknz->p), d = buf; (s <= toknz->pe); s++)
|
|
|
|
{
|
|
|
|
if ((*s == '\r') || (*s == '\n'))
|
|
|
|
break;
|
|
|
|
*d++ = *s;
|
|
|
|
}
|
|
|
|
*d = '\0';
|
|
|
|
ERR("error n:%d l:%d c:'%c': %s",
|
|
|
|
toknz->current_nesting, toknz->current_line, *( toknz->p), buf);
|
|
|
|
toknz->cs = eo_tokenizer_error;
|
|
|
|
{( toknz->p)++; goto _out; } /* necessary to stop scanners */
|
|
|
|
}}
|
|
|
|
break;
|
2014-04-02 04:04:12 -07:00
|
|
|
case 59:
|
2014-04-13 21:56:45 -07:00
|
|
|
#line 571 "lib/eolian/eo_lexer.rl"
|
2014-03-29 21:07:19 -07:00
|
|
|
{{( toknz->p) = (( toknz->te))-1;}}
|
|
|
|
break;
|
2014-04-02 04:04:12 -07:00
|
|
|
case 60:
|
2014-04-13 21:56:45 -07:00
|
|
|
#line 410 "lib/eolian/eo_lexer.rl"
|
2014-03-29 21:07:19 -07:00
|
|
|
{{( toknz->p) = (( toknz->te))-1;}{
|
|
|
|
DBG("error[%d]", toknz->cs);
|
|
|
|
char *s, *d;
|
|
|
|
char buf[BUFSIZE];
|
|
|
|
for (s = ( toknz->p), d = buf; (s <= toknz->pe); s++)
|
|
|
|
{
|
|
|
|
if ((*s == '\r') || (*s == '\n'))
|
|
|
|
break;
|
|
|
|
*d++ = *s;
|
|
|
|
}
|
|
|
|
*d = '\0';
|
|
|
|
ERR("error n:%d l:%d c:'%c': %s",
|
|
|
|
toknz->current_nesting, toknz->current_line, *( toknz->p), buf);
|
|
|
|
toknz->cs = eo_tokenizer_error;
|
|
|
|
{( toknz->p)++; goto _out; } /* necessary to stop scanners */
|
|
|
|
}}
|
|
|
|
break;
|
2014-04-02 04:04:12 -07:00
|
|
|
case 61:
|
2014-04-13 21:56:45 -07:00
|
|
|
#line 401 "lib/eolian/eo_lexer.rl"
|
2014-03-29 21:07:19 -07:00
|
|
|
{ toknz->te = ( toknz->p)+1;{
|
|
|
|
DBG("comment[%d] line%03d:%03d", toknz->cs,
|
|
|
|
toknz->saved.line, toknz->current_line);
|
|
|
|
}}
|
|
|
|
break;
|
2014-04-02 04:04:12 -07:00
|
|
|
case 62:
|
2014-04-13 21:56:45 -07:00
|
|
|
#line 578 "lib/eolian/eo_lexer.rl"
|
2014-03-29 21:07:19 -07:00
|
|
|
{ toknz->te = ( toknz->p)+1;{
|
|
|
|
INF(" get {");
|
|
|
|
toknz->tmp.accessor = _eo_tokenizer_accessor_get(toknz, GETTER);
|
|
|
|
toknz->current_nesting++;
|
2014-04-03 06:20:58 -07:00
|
|
|
{ toknz->cs = 303; goto _again;}
|
2014-03-29 21:07:19 -07:00
|
|
|
}}
|
|
|
|
break;
|
2014-04-02 04:04:12 -07:00
|
|
|
case 63:
|
2014-04-13 21:56:45 -07:00
|
|
|
#line 585 "lib/eolian/eo_lexer.rl"
|
2014-03-29 21:07:19 -07:00
|
|
|
{ toknz->te = ( toknz->p)+1;{
|
|
|
|
INF(" set {");
|
|
|
|
toknz->tmp.accessor = _eo_tokenizer_accessor_get(toknz, SETTER);
|
|
|
|
toknz->current_nesting++;
|
2014-04-03 06:20:58 -07:00
|
|
|
{ toknz->cs = 303; goto _again;}
|
2014-03-29 21:07:19 -07:00
|
|
|
}}
|
|
|
|
break;
|
2014-04-02 04:04:12 -07:00
|
|
|
case 64:
|
2014-04-13 21:56:45 -07:00
|
|
|
#line 592 "lib/eolian/eo_lexer.rl"
|
2014-03-29 21:07:19 -07:00
|
|
|
{ toknz->te = ( toknz->p)+1;{
|
|
|
|
INF(" keys {");
|
|
|
|
toknz->current_nesting++;
|
|
|
|
toknz->tmp.params = &(toknz->tmp.prop->keys);
|
2014-04-03 06:20:58 -07:00
|
|
|
{ toknz->cs = 312; goto _again;}
|
2014-03-29 21:07:19 -07:00
|
|
|
}}
|
|
|
|
break;
|
2014-04-02 04:04:12 -07:00
|
|
|
case 65:
|
2014-04-13 21:56:45 -07:00
|
|
|
#line 599 "lib/eolian/eo_lexer.rl"
|
2014-03-29 21:07:19 -07:00
|
|
|
{ toknz->te = ( toknz->p)+1;{
|
|
|
|
INF(" values {");
|
|
|
|
toknz->current_nesting++;
|
|
|
|
toknz->tmp.params = &(toknz->tmp.prop->values);
|
2014-04-03 06:20:58 -07:00
|
|
|
{ toknz->cs = 312; goto _again;}
|
2014-03-29 21:07:19 -07:00
|
|
|
}}
|
|
|
|
break;
|
2014-04-02 04:04:12 -07:00
|
|
|
case 66:
|
2014-04-13 21:56:45 -07:00
|
|
|
#line 606 "lib/eolian/eo_lexer.rl"
|
2014-03-29 21:07:19 -07:00
|
|
|
{ toknz->te = ( toknz->p)+1;{
|
|
|
|
if (!toknz->tmp.prop) ABORT(toknz, "No property!!!");
|
|
|
|
if (eina_list_count(toknz->tmp.prop->accessors) == 0)
|
|
|
|
WRN("property '%s' has no accessors.", toknz->tmp.prop->name);
|
|
|
|
INF(" }");
|
|
|
|
toknz->tmp.kls->properties = eina_list_append(toknz->tmp.kls->properties, toknz->tmp.prop);
|
|
|
|
toknz->tmp.prop = NULL;
|
|
|
|
toknz->current_nesting--;
|
2014-04-03 06:20:58 -07:00
|
|
|
{ toknz->cs = 327; goto _again;}
|
2014-03-29 21:07:19 -07:00
|
|
|
}}
|
|
|
|
break;
|
2014-04-02 04:04:12 -07:00
|
|
|
case 67:
|
2014-04-13 21:56:45 -07:00
|
|
|
#line 410 "lib/eolian/eo_lexer.rl"
|
2014-03-29 21:07:19 -07:00
|
|
|
{ toknz->te = ( toknz->p)+1;{
|
|
|
|
DBG("error[%d]", toknz->cs);
|
|
|
|
char *s, *d;
|
|
|
|
char buf[BUFSIZE];
|
|
|
|
for (s = ( toknz->p), d = buf; (s <= toknz->pe); s++)
|
|
|
|
{
|
|
|
|
if ((*s == '\r') || (*s == '\n'))
|
|
|
|
break;
|
|
|
|
*d++ = *s;
|
|
|
|
}
|
|
|
|
*d = '\0';
|
|
|
|
ERR("error n:%d l:%d c:'%c': %s",
|
|
|
|
toknz->current_nesting, toknz->current_line, *( toknz->p), buf);
|
|
|
|
toknz->cs = eo_tokenizer_error;
|
|
|
|
{( toknz->p)++; goto _out; } /* necessary to stop scanners */
|
|
|
|
}}
|
|
|
|
break;
|
2014-04-02 04:04:12 -07:00
|
|
|
case 68:
|
2014-04-03 06:20:58 -07:00
|
|
|
#line 623 "lib/eolian/eo_lexer.rl"
|
2014-03-29 21:07:19 -07:00
|
|
|
{ toknz->te = ( toknz->p);( toknz->p)--;}
|
|
|
|
break;
|
2014-04-02 04:04:12 -07:00
|
|
|
case 69:
|
2014-04-13 21:56:45 -07:00
|
|
|
#line 606 "lib/eolian/eo_lexer.rl"
|
2014-03-29 21:07:19 -07:00
|
|
|
{ toknz->te = ( toknz->p);( toknz->p)--;{
|
|
|
|
if (!toknz->tmp.prop) ABORT(toknz, "No property!!!");
|
|
|
|
if (eina_list_count(toknz->tmp.prop->accessors) == 0)
|
|
|
|
WRN("property '%s' has no accessors.", toknz->tmp.prop->name);
|
|
|
|
INF(" }");
|
|
|
|
toknz->tmp.kls->properties = eina_list_append(toknz->tmp.kls->properties, toknz->tmp.prop);
|
|
|
|
toknz->tmp.prop = NULL;
|
|
|
|
toknz->current_nesting--;
|
2014-04-03 06:20:58 -07:00
|
|
|
{ toknz->cs = 327; goto _again;}
|
2014-03-29 21:07:19 -07:00
|
|
|
}}
|
|
|
|
break;
|
2014-04-02 04:04:12 -07:00
|
|
|
case 70:
|
2014-04-13 21:56:45 -07:00
|
|
|
#line 410 "lib/eolian/eo_lexer.rl"
|
2014-03-29 21:07:19 -07:00
|
|
|
{ toknz->te = ( toknz->p);( toknz->p)--;{
|
|
|
|
DBG("error[%d]", toknz->cs);
|
|
|
|
char *s, *d;
|
|
|
|
char buf[BUFSIZE];
|
|
|
|
for (s = ( toknz->p), d = buf; (s <= toknz->pe); s++)
|
|
|
|
{
|
|
|
|
if ((*s == '\r') || (*s == '\n'))
|
|
|
|
break;
|
|
|
|
*d++ = *s;
|
|
|
|
}
|
|
|
|
*d = '\0';
|
|
|
|
ERR("error n:%d l:%d c:'%c': %s",
|
|
|
|
toknz->current_nesting, toknz->current_line, *( toknz->p), buf);
|
|
|
|
toknz->cs = eo_tokenizer_error;
|
|
|
|
{( toknz->p)++; goto _out; } /* necessary to stop scanners */
|
|
|
|
}}
|
|
|
|
break;
|
2014-04-02 04:04:12 -07:00
|
|
|
case 71:
|
2014-04-13 21:56:45 -07:00
|
|
|
#line 410 "lib/eolian/eo_lexer.rl"
|
2014-03-29 21:07:19 -07:00
|
|
|
{{( toknz->p) = (( toknz->te))-1;}{
|
|
|
|
DBG("error[%d]", toknz->cs);
|
|
|
|
char *s, *d;
|
|
|
|
char buf[BUFSIZE];
|
|
|
|
for (s = ( toknz->p), d = buf; (s <= toknz->pe); s++)
|
|
|
|
{
|
|
|
|
if ((*s == '\r') || (*s == '\n'))
|
|
|
|
break;
|
|
|
|
*d++ = *s;
|
|
|
|
}
|
|
|
|
*d = '\0';
|
|
|
|
ERR("error n:%d l:%d c:'%c': %s",
|
|
|
|
toknz->current_nesting, toknz->current_line, *( toknz->p), buf);
|
|
|
|
toknz->cs = eo_tokenizer_error;
|
|
|
|
{( toknz->p)++; goto _out; } /* necessary to stop scanners */
|
|
|
|
}}
|
|
|
|
break;
|
2014-04-02 04:04:12 -07:00
|
|
|
case 72:
|
2014-04-13 21:56:45 -07:00
|
|
|
#line 401 "lib/eolian/eo_lexer.rl"
|
2014-03-29 21:07:19 -07:00
|
|
|
{ toknz->te = ( toknz->p)+1;{
|
|
|
|
DBG("comment[%d] line%03d:%03d", toknz->cs,
|
|
|
|
toknz->saved.line, toknz->current_line);
|
|
|
|
}}
|
|
|
|
break;
|
2014-04-02 04:04:12 -07:00
|
|
|
case 73:
|
2014-04-03 06:20:58 -07:00
|
|
|
#line 635 "lib/eolian/eo_lexer.rl"
|
2014-03-29 21:07:19 -07:00
|
|
|
{ toknz->te = ( toknz->p)+1;{
|
|
|
|
if (!toknz->tmp.prop) ABORT(toknz, "No property!!!");
|
|
|
|
INF(" %s {", toknz->tmp.prop->name);
|
|
|
|
toknz->current_nesting++;
|
2014-04-03 06:20:58 -07:00
|
|
|
{ toknz->cs = 319; goto _again;}
|
2014-03-29 21:07:19 -07:00
|
|
|
}}
|
|
|
|
break;
|
2014-04-02 04:04:12 -07:00
|
|
|
case 74:
|
2014-04-03 06:20:58 -07:00
|
|
|
#line 648 "lib/eolian/eo_lexer.rl"
|
2014-03-29 21:07:19 -07:00
|
|
|
{ toknz->te = ( toknz->p)+1;{
|
|
|
|
INF(" }");
|
|
|
|
toknz->current_nesting--;
|
2014-04-03 06:20:58 -07:00
|
|
|
{ toknz->cs = 347; goto _again;}
|
2014-03-29 21:07:19 -07:00
|
|
|
}}
|
|
|
|
break;
|
2014-04-02 04:04:12 -07:00
|
|
|
case 75:
|
2014-04-13 21:56:45 -07:00
|
|
|
#line 410 "lib/eolian/eo_lexer.rl"
|
2014-03-29 21:07:19 -07:00
|
|
|
{ toknz->te = ( toknz->p)+1;{
|
|
|
|
DBG("error[%d]", toknz->cs);
|
|
|
|
char *s, *d;
|
|
|
|
char buf[BUFSIZE];
|
|
|
|
for (s = ( toknz->p), d = buf; (s <= toknz->pe); s++)
|
|
|
|
{
|
|
|
|
if ((*s == '\r') || (*s == '\n'))
|
|
|
|
break;
|
|
|
|
*d++ = *s;
|
|
|
|
}
|
|
|
|
*d = '\0';
|
|
|
|
ERR("error n:%d l:%d c:'%c': %s",
|
|
|
|
toknz->current_nesting, toknz->current_line, *( toknz->p), buf);
|
|
|
|
toknz->cs = eo_tokenizer_error;
|
|
|
|
{( toknz->p)++; goto _out; } /* necessary to stop scanners */
|
|
|
|
}}
|
|
|
|
break;
|
2014-04-02 04:04:12 -07:00
|
|
|
case 76:
|
2014-04-03 06:20:58 -07:00
|
|
|
#line 657 "lib/eolian/eo_lexer.rl"
|
2014-03-29 21:07:19 -07:00
|
|
|
{ toknz->te = ( toknz->p);( toknz->p)--;}
|
|
|
|
break;
|
2014-04-02 04:04:12 -07:00
|
|
|
case 77:
|
2014-04-03 06:20:58 -07:00
|
|
|
#line 648 "lib/eolian/eo_lexer.rl"
|
2014-03-29 21:07:19 -07:00
|
|
|
{ toknz->te = ( toknz->p);( toknz->p)--;{
|
|
|
|
INF(" }");
|
|
|
|
toknz->current_nesting--;
|
2014-04-03 06:20:58 -07:00
|
|
|
{ toknz->cs = 347; goto _again;}
|
2014-03-29 21:07:19 -07:00
|
|
|
}}
|
|
|
|
break;
|
2014-04-02 04:04:12 -07:00
|
|
|
case 78:
|
2014-04-13 21:56:45 -07:00
|
|
|
#line 410 "lib/eolian/eo_lexer.rl"
|
2014-03-29 21:07:19 -07:00
|
|
|
{ toknz->te = ( toknz->p);( toknz->p)--;{
|
|
|
|
DBG("error[%d]", toknz->cs);
|
|
|
|
char *s, *d;
|
|
|
|
char buf[BUFSIZE];
|
|
|
|
for (s = ( toknz->p), d = buf; (s <= toknz->pe); s++)
|
|
|
|
{
|
|
|
|
if ((*s == '\r') || (*s == '\n'))
|
|
|
|
break;
|
|
|
|
*d++ = *s;
|
|
|
|
}
|
|
|
|
*d = '\0';
|
|
|
|
ERR("error n:%d l:%d c:'%c': %s",
|
|
|
|
toknz->current_nesting, toknz->current_line, *( toknz->p), buf);
|
|
|
|
toknz->cs = eo_tokenizer_error;
|
|
|
|
{( toknz->p)++; goto _out; } /* necessary to stop scanners */
|
|
|
|
}}
|
|
|
|
break;
|
2014-04-02 04:04:12 -07:00
|
|
|
case 79:
|
2014-04-13 21:56:45 -07:00
|
|
|
#line 410 "lib/eolian/eo_lexer.rl"
|
2014-03-29 21:07:19 -07:00
|
|
|
{{( toknz->p) = (( toknz->te))-1;}{
|
|
|
|
DBG("error[%d]", toknz->cs);
|
|
|
|
char *s, *d;
|
|
|
|
char buf[BUFSIZE];
|
|
|
|
for (s = ( toknz->p), d = buf; (s <= toknz->pe); s++)
|
|
|
|
{
|
|
|
|
if ((*s == '\r') || (*s == '\n'))
|
|
|
|
break;
|
|
|
|
*d++ = *s;
|
|
|
|
}
|
|
|
|
*d = '\0';
|
|
|
|
ERR("error n:%d l:%d c:'%c': %s",
|
|
|
|
toknz->current_nesting, toknz->current_line, *( toknz->p), buf);
|
|
|
|
toknz->cs = eo_tokenizer_error;
|
|
|
|
{( toknz->p)++; goto _out; } /* necessary to stop scanners */
|
|
|
|
}}
|
|
|
|
break;
|
2014-04-02 04:04:12 -07:00
|
|
|
case 80:
|
2014-04-03 06:20:58 -07:00
|
|
|
#line 666 "lib/eolian/eo_lexer.rl"
|
2014-03-29 21:07:19 -07:00
|
|
|
{ toknz->te = ( toknz->p)+1;{
|
|
|
|
if (!toknz->tmp.meth) ABORT(toknz, "No method!!!");
|
|
|
|
if (toknz->tmp.meth->comment != NULL)
|
|
|
|
ABORT(toknz, "method has already a comment");
|
|
|
|
toknz->tmp.meth->comment = _eo_tokenizer_token_get(toknz, ( toknz->p)-1);
|
|
|
|
INF(" %s", toknz->tmp.meth->comment);
|
|
|
|
}}
|
|
|
|
break;
|
2014-04-02 04:04:12 -07:00
|
|
|
case 81:
|
2014-04-13 21:56:45 -07:00
|
|
|
#line 401 "lib/eolian/eo_lexer.rl"
|
2014-03-29 21:07:19 -07:00
|
|
|
{ toknz->te = ( toknz->p)+1;{
|
|
|
|
DBG("comment[%d] line%03d:%03d", toknz->cs,
|
|
|
|
toknz->saved.line, toknz->current_line);
|
|
|
|
}}
|
|
|
|
break;
|
2014-04-02 04:04:12 -07:00
|
|
|
case 82:
|
2014-04-03 06:20:58 -07:00
|
|
|
#line 674 "lib/eolian/eo_lexer.rl"
|
2014-03-29 21:07:19 -07:00
|
|
|
{ toknz->te = ( toknz->p)+1;{
|
|
|
|
if (!toknz->tmp.meth) ABORT(toknz, "No method!!!");
|
|
|
|
INF(" params {");
|
|
|
|
toknz->current_nesting++;
|
|
|
|
toknz->tmp.params = &(toknz->tmp.meth->params);
|
2014-04-03 06:20:58 -07:00
|
|
|
{ toknz->cs = 312; goto _again;}
|
2014-03-29 21:07:19 -07:00
|
|
|
}}
|
|
|
|
break;
|
2014-04-02 04:04:12 -07:00
|
|
|
case 83:
|
2014-04-13 21:56:45 -07:00
|
|
|
#line 748 "lib/eolian/eo_lexer.rl"
|
2014-03-29 21:07:19 -07:00
|
|
|
{ toknz->te = ( toknz->p)+1;}
|
|
|
|
break;
|
2014-04-02 04:04:12 -07:00
|
|
|
case 84:
|
2014-04-13 21:56:45 -07:00
|
|
|
#line 749 "lib/eolian/eo_lexer.rl"
|
2014-03-29 21:07:19 -07:00
|
|
|
{ toknz->te = ( toknz->p)+1;}
|
|
|
|
break;
|
2014-04-02 04:04:12 -07:00
|
|
|
case 85:
|
2014-04-03 06:20:58 -07:00
|
|
|
#line 709 "lib/eolian/eo_lexer.rl"
|
2014-03-29 21:07:19 -07:00
|
|
|
{ toknz->te = ( toknz->p)+1;{
|
|
|
|
Eina_List **l = NULL;
|
|
|
|
if (!toknz->tmp.meth) ABORT(toknz, "No method!!!");
|
|
|
|
INF(" }");
|
|
|
|
switch (toknz->current_methods_type) {
|
|
|
|
case METH_CONSTRUCTOR:
|
|
|
|
l = &toknz->tmp.kls->constructors;
|
|
|
|
break;
|
|
|
|
case METH_DESTRUCTOR:
|
|
|
|
l = &toknz->tmp.kls->destructors;
|
|
|
|
break;
|
|
|
|
case METH_REGULAR:
|
|
|
|
l = &toknz->tmp.kls->methods;
|
|
|
|
break;
|
|
|
|
default:
|
|
|
|
ABORT(toknz, "unknown method type %d", toknz->current_methods_type);
|
|
|
|
}
|
|
|
|
toknz->tmp.meth->type = toknz->current_methods_type;
|
|
|
|
*l = eina_list_append(*l, toknz->tmp.meth);
|
|
|
|
toknz->tmp.meth = NULL;
|
|
|
|
toknz->current_nesting--;
|
2014-04-03 06:20:58 -07:00
|
|
|
{ toknz->cs = 342; goto _again;}
|
2014-03-29 21:07:19 -07:00
|
|
|
}}
|
|
|
|
break;
|
2014-04-02 04:04:12 -07:00
|
|
|
case 86:
|
2014-04-13 21:56:45 -07:00
|
|
|
#line 410 "lib/eolian/eo_lexer.rl"
|
2014-03-29 21:07:19 -07:00
|
|
|
{ toknz->te = ( toknz->p)+1;{
|
|
|
|
DBG("error[%d]", toknz->cs);
|
|
|
|
char *s, *d;
|
|
|
|
char buf[BUFSIZE];
|
|
|
|
for (s = ( toknz->p), d = buf; (s <= toknz->pe); s++)
|
|
|
|
{
|
|
|
|
if ((*s == '\r') || (*s == '\n'))
|
|
|
|
break;
|
|
|
|
*d++ = *s;
|
|
|
|
}
|
|
|
|
*d = '\0';
|
|
|
|
ERR("error n:%d l:%d c:'%c': %s",
|
|
|
|
toknz->current_nesting, toknz->current_line, *( toknz->p), buf);
|
|
|
|
toknz->cs = eo_tokenizer_error;
|
|
|
|
{( toknz->p)++; goto _out; } /* necessary to stop scanners */
|
|
|
|
}}
|
|
|
|
break;
|
2014-04-02 04:04:12 -07:00
|
|
|
case 87:
|
2014-04-13 21:56:45 -07:00
|
|
|
#line 743 "lib/eolian/eo_lexer.rl"
|
2014-03-29 21:07:19 -07:00
|
|
|
{ toknz->te = ( toknz->p);( toknz->p)--;}
|
|
|
|
break;
|
2014-04-02 04:04:12 -07:00
|
|
|
case 88:
|
2014-04-13 21:56:45 -07:00
|
|
|
#line 747 "lib/eolian/eo_lexer.rl"
|
2014-03-29 21:07:19 -07:00
|
|
|
{ toknz->te = ( toknz->p);( toknz->p)--;}
|
|
|
|
break;
|
2014-04-02 04:04:12 -07:00
|
|
|
case 89:
|
2014-04-03 06:20:58 -07:00
|
|
|
#line 709 "lib/eolian/eo_lexer.rl"
|
2014-03-29 21:07:19 -07:00
|
|
|
{ toknz->te = ( toknz->p);( toknz->p)--;{
|
|
|
|
Eina_List **l = NULL;
|
|
|
|
if (!toknz->tmp.meth) ABORT(toknz, "No method!!!");
|
|
|
|
INF(" }");
|
|
|
|
switch (toknz->current_methods_type) {
|
|
|
|
case METH_CONSTRUCTOR:
|
|
|
|
l = &toknz->tmp.kls->constructors;
|
|
|
|
break;
|
|
|
|
case METH_DESTRUCTOR:
|
|
|
|
l = &toknz->tmp.kls->destructors;
|
|
|
|
break;
|
|
|
|
case METH_REGULAR:
|
|
|
|
l = &toknz->tmp.kls->methods;
|
|
|
|
break;
|
|
|
|
default:
|
|
|
|
ABORT(toknz, "unknown method type %d", toknz->current_methods_type);
|
|
|
|
}
|
|
|
|
toknz->tmp.meth->type = toknz->current_methods_type;
|
|
|
|
*l = eina_list_append(*l, toknz->tmp.meth);
|
|
|
|
toknz->tmp.meth = NULL;
|
|
|
|
toknz->current_nesting--;
|
2014-04-03 06:20:58 -07:00
|
|
|
{ toknz->cs = 342; goto _again;}
|
2014-03-29 21:07:19 -07:00
|
|
|
}}
|
|
|
|
break;
|
2014-04-02 04:04:12 -07:00
|
|
|
case 90:
|
2014-04-13 21:56:45 -07:00
|
|
|
#line 410 "lib/eolian/eo_lexer.rl"
|
2014-03-29 21:07:19 -07:00
|
|
|
{ toknz->te = ( toknz->p);( toknz->p)--;{
|
|
|
|
DBG("error[%d]", toknz->cs);
|
|
|
|
char *s, *d;
|
|
|
|
char buf[BUFSIZE];
|
|
|
|
for (s = ( toknz->p), d = buf; (s <= toknz->pe); s++)
|
|
|
|
{
|
|
|
|
if ((*s == '\r') || (*s == '\n'))
|
|
|
|
break;
|
|
|
|
*d++ = *s;
|
|
|
|
}
|
|
|
|
*d = '\0';
|
|
|
|
ERR("error n:%d l:%d c:'%c': %s",
|
|
|
|
toknz->current_nesting, toknz->current_line, *( toknz->p), buf);
|
|
|
|
toknz->cs = eo_tokenizer_error;
|
|
|
|
{( toknz->p)++; goto _out; } /* necessary to stop scanners */
|
|
|
|
}}
|
|
|
|
break;
|
2014-04-02 04:04:12 -07:00
|
|
|
case 91:
|
2014-04-13 21:56:45 -07:00
|
|
|
#line 747 "lib/eolian/eo_lexer.rl"
|
2014-03-29 21:07:19 -07:00
|
|
|
{{( toknz->p) = (( toknz->te))-1;}}
|
|
|
|
break;
|
2014-04-02 04:04:12 -07:00
|
|
|
case 92:
|
2014-04-13 21:56:45 -07:00
|
|
|
#line 410 "lib/eolian/eo_lexer.rl"
|
2014-03-29 21:07:19 -07:00
|
|
|
{{( toknz->p) = (( toknz->te))-1;}{
|
|
|
|
DBG("error[%d]", toknz->cs);
|
|
|
|
char *s, *d;
|
|
|
|
char buf[BUFSIZE];
|
|
|
|
for (s = ( toknz->p), d = buf; (s <= toknz->pe); s++)
|
|
|
|
{
|
|
|
|
if ((*s == '\r') || (*s == '\n'))
|
|
|
|
break;
|
|
|
|
*d++ = *s;
|
|
|
|
}
|
|
|
|
*d = '\0';
|
|
|
|
ERR("error n:%d l:%d c:'%c': %s",
|
|
|
|
toknz->current_nesting, toknz->current_line, *( toknz->p), buf);
|
|
|
|
toknz->cs = eo_tokenizer_error;
|
|
|
|
{( toknz->p)++; goto _out; } /* necessary to stop scanners */
|
|
|
|
}}
|
|
|
|
break;
|
2014-04-02 04:04:12 -07:00
|
|
|
case 93:
|
2014-04-13 21:56:45 -07:00
|
|
|
#line 401 "lib/eolian/eo_lexer.rl"
|
2014-03-29 21:07:19 -07:00
|
|
|
{ toknz->te = ( toknz->p)+1;{
|
|
|
|
DBG("comment[%d] line%03d:%03d", toknz->cs,
|
|
|
|
toknz->saved.line, toknz->current_line);
|
|
|
|
}}
|
|
|
|
break;
|
2014-04-02 04:04:12 -07:00
|
|
|
case 94:
|
2014-04-13 21:56:45 -07:00
|
|
|
#line 756 "lib/eolian/eo_lexer.rl"
|
2014-03-29 21:07:19 -07:00
|
|
|
{ toknz->te = ( toknz->p)+1;{
|
|
|
|
if (!toknz->tmp.meth) ABORT(toknz, "No method!!!");
|
|
|
|
INF(" %s {", toknz->tmp.meth->name);
|
|
|
|
toknz->current_nesting++;
|
2014-04-03 06:20:58 -07:00
|
|
|
{ toknz->cs = 332; goto _again;}
|
2014-03-29 21:07:19 -07:00
|
|
|
}}
|
|
|
|
break;
|
2014-04-02 04:04:12 -07:00
|
|
|
case 95:
|
2014-04-13 21:56:45 -07:00
|
|
|
#line 769 "lib/eolian/eo_lexer.rl"
|
2014-03-29 21:07:19 -07:00
|
|
|
{ toknz->te = ( toknz->p)+1;{
|
|
|
|
INF(" }");
|
|
|
|
toknz->current_methods_type = METH_TYPE_LAST;
|
|
|
|
toknz->current_nesting--;
|
2014-04-03 06:20:58 -07:00
|
|
|
{ toknz->cs = 347; goto _again;}
|
2014-03-29 21:07:19 -07:00
|
|
|
}}
|
|
|
|
break;
|
2014-04-02 04:04:12 -07:00
|
|
|
case 96:
|
2014-04-13 21:56:45 -07:00
|
|
|
#line 410 "lib/eolian/eo_lexer.rl"
|
2014-03-29 21:07:19 -07:00
|
|
|
{ toknz->te = ( toknz->p)+1;{
|
|
|
|
DBG("error[%d]", toknz->cs);
|
|
|
|
char *s, *d;
|
|
|
|
char buf[BUFSIZE];
|
|
|
|
for (s = ( toknz->p), d = buf; (s <= toknz->pe); s++)
|
|
|
|
{
|
|
|
|
if ((*s == '\r') || (*s == '\n'))
|
|
|
|
break;
|
|
|
|
*d++ = *s;
|
|
|
|
}
|
|
|
|
*d = '\0';
|
|
|
|
ERR("error n:%d l:%d c:'%c': %s",
|
|
|
|
toknz->current_nesting, toknz->current_line, *( toknz->p), buf);
|
|
|
|
toknz->cs = eo_tokenizer_error;
|
|
|
|
{( toknz->p)++; goto _out; } /* necessary to stop scanners */
|
|
|
|
}}
|
|
|
|
break;
|
2014-04-02 04:04:12 -07:00
|
|
|
case 97:
|
2014-04-13 21:56:45 -07:00
|
|
|
#line 779 "lib/eolian/eo_lexer.rl"
|
2014-03-29 21:07:19 -07:00
|
|
|
{ toknz->te = ( toknz->p);( toknz->p)--;}
|
|
|
|
break;
|
2014-04-02 04:04:12 -07:00
|
|
|
case 98:
|
2014-04-13 21:56:45 -07:00
|
|
|
#line 769 "lib/eolian/eo_lexer.rl"
|
2014-03-29 21:07:19 -07:00
|
|
|
{ toknz->te = ( toknz->p);( toknz->p)--;{
|
|
|
|
INF(" }");
|
|
|
|
toknz->current_methods_type = METH_TYPE_LAST;
|
|
|
|
toknz->current_nesting--;
|
2014-04-03 06:20:58 -07:00
|
|
|
{ toknz->cs = 347; goto _again;}
|
2014-03-29 21:07:19 -07:00
|
|
|
}}
|
|
|
|
break;
|
2014-04-02 04:04:12 -07:00
|
|
|
case 99:
|
2014-04-13 21:56:45 -07:00
|
|
|
#line 410 "lib/eolian/eo_lexer.rl"
|
2014-03-29 21:07:19 -07:00
|
|
|
{ toknz->te = ( toknz->p);( toknz->p)--;{
|
|
|
|
DBG("error[%d]", toknz->cs);
|
|
|
|
char *s, *d;
|
|
|
|
char buf[BUFSIZE];
|
|
|
|
for (s = ( toknz->p), d = buf; (s <= toknz->pe); s++)
|
|
|
|
{
|
|
|
|
if ((*s == '\r') || (*s == '\n'))
|
|
|
|
break;
|
|
|
|
*d++ = *s;
|
|
|
|
}
|
|
|
|
*d = '\0';
|
|
|
|
ERR("error n:%d l:%d c:'%c': %s",
|
|
|
|
toknz->current_nesting, toknz->current_line, *( toknz->p), buf);
|
|
|
|
toknz->cs = eo_tokenizer_error;
|
|
|
|
{( toknz->p)++; goto _out; } /* necessary to stop scanners */
|
|
|
|
}}
|
|
|
|
break;
|
2014-04-02 04:04:12 -07:00
|
|
|
case 100:
|
2014-04-13 21:56:45 -07:00
|
|
|
#line 410 "lib/eolian/eo_lexer.rl"
|
2014-03-29 21:07:19 -07:00
|
|
|
{{( toknz->p) = (( toknz->te))-1;}{
|
|
|
|
DBG("error[%d]", toknz->cs);
|
|
|
|
char *s, *d;
|
|
|
|
char buf[BUFSIZE];
|
|
|
|
for (s = ( toknz->p), d = buf; (s <= toknz->pe); s++)
|
|
|
|
{
|
|
|
|
if ((*s == '\r') || (*s == '\n'))
|
|
|
|
break;
|
|
|
|
*d++ = *s;
|
|
|
|
}
|
|
|
|
*d = '\0';
|
|
|
|
ERR("error n:%d l:%d c:'%c': %s",
|
|
|
|
toknz->current_nesting, toknz->current_line, *( toknz->p), buf);
|
|
|
|
toknz->cs = eo_tokenizer_error;
|
|
|
|
{( toknz->p)++; goto _out; } /* necessary to stop scanners */
|
|
|
|
}}
|
|
|
|
break;
|
2014-04-02 04:04:12 -07:00
|
|
|
case 101:
|
2014-04-13 21:56:45 -07:00
|
|
|
#line 788 "lib/eolian/eo_lexer.rl"
|
2014-03-29 21:07:19 -07:00
|
|
|
{ toknz->te = ( toknz->p)+1;{
|
|
|
|
if (!toknz->tmp.kls) ABORT(toknz, "No class!!!");
|
|
|
|
if (toknz->tmp.kls->comment != NULL)
|
|
|
|
ABORT(toknz, "class %s has already a comment", toknz->tmp.kls->name);
|
|
|
|
toknz->tmp.kls->comment = _eo_tokenizer_token_get(toknz, ( toknz->p)-1);
|
|
|
|
}}
|
|
|
|
break;
|
2014-04-02 04:04:12 -07:00
|
|
|
case 102:
|
2014-04-13 21:56:45 -07:00
|
|
|
#line 401 "lib/eolian/eo_lexer.rl"
|
2014-03-29 21:07:19 -07:00
|
|
|
{ toknz->te = ( toknz->p)+1;{
|
|
|
|
DBG("comment[%d] line%03d:%03d", toknz->cs,
|
|
|
|
toknz->saved.line, toknz->current_line);
|
|
|
|
}}
|
|
|
|
break;
|
2014-04-02 04:04:12 -07:00
|
|
|
case 103:
|
2014-04-13 21:56:45 -07:00
|
|
|
#line 806 "lib/eolian/eo_lexer.rl"
|
2014-03-29 21:07:19 -07:00
|
|
|
{ toknz->te = ( toknz->p)+1;{
|
|
|
|
}}
|
|
|
|
break;
|
2014-04-02 04:04:12 -07:00
|
|
|
case 104:
|
2014-04-13 21:56:45 -07:00
|
|
|
#line 809 "lib/eolian/eo_lexer.rl"
|
2014-03-29 21:07:19 -07:00
|
|
|
{ toknz->te = ( toknz->p)+1;{
|
|
|
|
}}
|
|
|
|
break;
|
2014-04-02 04:04:12 -07:00
|
|
|
case 105:
|
2014-04-13 21:56:45 -07:00
|
|
|
#line 812 "lib/eolian/eo_lexer.rl"
|
2014-03-29 21:07:19 -07:00
|
|
|
{ toknz->te = ( toknz->p)+1;{
|
|
|
|
INF(" constructors {");
|
|
|
|
toknz->current_methods_type = METH_CONSTRUCTOR;
|
|
|
|
toknz->current_nesting++;
|
2014-04-03 06:20:58 -07:00
|
|
|
{ toknz->cs = 342; goto _again;}
|
2014-03-29 21:07:19 -07:00
|
|
|
}}
|
|
|
|
break;
|
2014-04-02 04:04:12 -07:00
|
|
|
case 106:
|
2014-04-13 21:56:45 -07:00
|
|
|
#line 819 "lib/eolian/eo_lexer.rl"
|
2014-03-29 21:07:19 -07:00
|
|
|
{ toknz->te = ( toknz->p)+1;{
|
|
|
|
INF(" destructors {");
|
|
|
|
toknz->current_methods_type = METH_DESTRUCTOR;
|
|
|
|
toknz->current_nesting++;
|
2014-04-03 06:20:58 -07:00
|
|
|
{ toknz->cs = 342; goto _again;}
|
2014-03-29 21:07:19 -07:00
|
|
|
}}
|
|
|
|
break;
|
2014-04-02 04:04:12 -07:00
|
|
|
case 107:
|
2014-04-13 21:56:45 -07:00
|
|
|
#line 826 "lib/eolian/eo_lexer.rl"
|
2014-03-29 21:07:19 -07:00
|
|
|
{ toknz->te = ( toknz->p)+1;{
|
|
|
|
INF(" properties {");
|
|
|
|
toknz->current_nesting++;
|
2014-04-03 06:20:58 -07:00
|
|
|
{ toknz->cs = 327; goto _again;}
|
2014-03-29 21:07:19 -07:00
|
|
|
}}
|
|
|
|
break;
|
2014-04-02 04:04:12 -07:00
|
|
|
case 108:
|
2014-04-13 21:56:45 -07:00
|
|
|
#line 832 "lib/eolian/eo_lexer.rl"
|
2014-03-29 21:07:19 -07:00
|
|
|
{ toknz->te = ( toknz->p)+1;{
|
|
|
|
INF(" begin methods");
|
|
|
|
toknz->current_methods_type = METH_REGULAR;
|
|
|
|
toknz->current_nesting++;
|
2014-04-03 06:20:58 -07:00
|
|
|
{ toknz->cs = 342; goto _again;}
|
2014-03-29 21:07:19 -07:00
|
|
|
}}
|
|
|
|
break;
|
2014-04-02 04:04:12 -07:00
|
|
|
case 109:
|
2014-04-13 21:56:45 -07:00
|
|
|
#line 839 "lib/eolian/eo_lexer.rl"
|
2014-03-29 21:07:19 -07:00
|
|
|
{ toknz->te = ( toknz->p)+1;{
|
|
|
|
if (!toknz->tmp.kls) ABORT(toknz, "No class!!!");
|
|
|
|
INF("end class: %s", toknz->tmp.kls->name);
|
|
|
|
toknz->classes = eina_list_append(toknz->classes, toknz->tmp.kls);
|
|
|
|
toknz->tmp.kls = NULL;
|
|
|
|
toknz->current_nesting--;
|
2014-04-03 06:20:58 -07:00
|
|
|
{ toknz->cs = 296; goto _again;}
|
2014-03-29 21:07:19 -07:00
|
|
|
}}
|
|
|
|
break;
|
2014-04-02 04:04:12 -07:00
|
|
|
case 110:
|
2014-04-13 21:56:45 -07:00
|
|
|
#line 410 "lib/eolian/eo_lexer.rl"
|
2014-03-29 21:07:19 -07:00
|
|
|
{ toknz->te = ( toknz->p)+1;{
|
|
|
|
DBG("error[%d]", toknz->cs);
|
|
|
|
char *s, *d;
|
|
|
|
char buf[BUFSIZE];
|
|
|
|
for (s = ( toknz->p), d = buf; (s <= toknz->pe); s++)
|
|
|
|
{
|
|
|
|
if ((*s == '\r') || (*s == '\n'))
|
|
|
|
break;
|
|
|
|
*d++ = *s;
|
|
|
|
}
|
|
|
|
*d = '\0';
|
|
|
|
ERR("error n:%d l:%d c:'%c': %s",
|
|
|
|
toknz->current_nesting, toknz->current_line, *( toknz->p), buf);
|
|
|
|
toknz->cs = eo_tokenizer_error;
|
|
|
|
{( toknz->p)++; goto _out; } /* necessary to stop scanners */
|
|
|
|
}}
|
|
|
|
break;
|
|
|
|
case 111:
|
2014-04-13 21:56:45 -07:00
|
|
|
#line 994 "lib/eolian/eo_lexer.rl"
|
2014-03-29 21:07:19 -07:00
|
|
|
{ toknz->te = ( toknz->p);( toknz->p)--;}
|
|
|
|
break;
|
|
|
|
case 112:
|
2014-04-13 21:56:45 -07:00
|
|
|
#line 997 "lib/eolian/eo_lexer.rl"
|
2014-03-29 21:07:19 -07:00
|
|
|
{ toknz->te = ( toknz->p);( toknz->p)--;}
|
|
|
|
break;
|
|
|
|
case 113:
|
2014-04-13 21:56:45 -07:00
|
|
|
#line 998 "lib/eolian/eo_lexer.rl"
|
2014-03-29 21:07:19 -07:00
|
|
|
{ toknz->te = ( toknz->p);( toknz->p)--;}
|
|
|
|
break;
|
|
|
|
case 114:
|
2014-04-13 21:56:45 -07:00
|
|
|
#line 999 "lib/eolian/eo_lexer.rl"
|
2014-04-02 04:04:12 -07:00
|
|
|
{ toknz->te = ( toknz->p);( toknz->p)--;}
|
|
|
|
break;
|
|
|
|
case 115:
|
2014-04-13 21:56:45 -07:00
|
|
|
#line 806 "lib/eolian/eo_lexer.rl"
|
2014-03-29 21:07:19 -07:00
|
|
|
{ toknz->te = ( toknz->p);( toknz->p)--;{
|
|
|
|
}}
|
|
|
|
break;
|
2014-04-02 04:04:12 -07:00
|
|
|
case 116:
|
2014-04-13 21:56:45 -07:00
|
|
|
#line 809 "lib/eolian/eo_lexer.rl"
|
2014-03-29 21:07:19 -07:00
|
|
|
{ toknz->te = ( toknz->p);( toknz->p)--;{
|
|
|
|
}}
|
|
|
|
break;
|
2014-04-02 04:04:12 -07:00
|
|
|
case 117:
|
2014-04-13 21:56:45 -07:00
|
|
|
#line 839 "lib/eolian/eo_lexer.rl"
|
2014-03-29 21:07:19 -07:00
|
|
|
{ toknz->te = ( toknz->p);( toknz->p)--;{
|
|
|
|
if (!toknz->tmp.kls) ABORT(toknz, "No class!!!");
|
|
|
|
INF("end class: %s", toknz->tmp.kls->name);
|
|
|
|
toknz->classes = eina_list_append(toknz->classes, toknz->tmp.kls);
|
|
|
|
toknz->tmp.kls = NULL;
|
|
|
|
toknz->current_nesting--;
|
2014-04-03 06:20:58 -07:00
|
|
|
{ toknz->cs = 296; goto _again;}
|
2014-03-29 21:07:19 -07:00
|
|
|
}}
|
|
|
|
break;
|
2014-04-02 04:04:12 -07:00
|
|
|
case 118:
|
2014-04-13 21:56:45 -07:00
|
|
|
#line 410 "lib/eolian/eo_lexer.rl"
|
2014-03-29 21:07:19 -07:00
|
|
|
{ toknz->te = ( toknz->p);( toknz->p)--;{
|
|
|
|
DBG("error[%d]", toknz->cs);
|
|
|
|
char *s, *d;
|
|
|
|
char buf[BUFSIZE];
|
|
|
|
for (s = ( toknz->p), d = buf; (s <= toknz->pe); s++)
|
|
|
|
{
|
|
|
|
if ((*s == '\r') || (*s == '\n'))
|
|
|
|
break;
|
|
|
|
*d++ = *s;
|
|
|
|
}
|
|
|
|
*d = '\0';
|
|
|
|
ERR("error n:%d l:%d c:'%c': %s",
|
|
|
|
toknz->current_nesting, toknz->current_line, *( toknz->p), buf);
|
|
|
|
toknz->cs = eo_tokenizer_error;
|
|
|
|
{( toknz->p)++; goto _out; } /* necessary to stop scanners */
|
|
|
|
}}
|
|
|
|
break;
|
2014-04-02 04:04:12 -07:00
|
|
|
case 119:
|
2014-04-13 21:56:45 -07:00
|
|
|
#line 410 "lib/eolian/eo_lexer.rl"
|
2014-03-29 21:07:19 -07:00
|
|
|
{{( toknz->p) = (( toknz->te))-1;}{
|
|
|
|
DBG("error[%d]", toknz->cs);
|
|
|
|
char *s, *d;
|
|
|
|
char buf[BUFSIZE];
|
|
|
|
for (s = ( toknz->p), d = buf; (s <= toknz->pe); s++)
|
|
|
|
{
|
|
|
|
if ((*s == '\r') || (*s == '\n'))
|
|
|
|
break;
|
|
|
|
*d++ = *s;
|
|
|
|
}
|
|
|
|
*d = '\0';
|
|
|
|
ERR("error n:%d l:%d c:'%c': %s",
|
|
|
|
toknz->current_nesting, toknz->current_line, *( toknz->p), buf);
|
|
|
|
toknz->cs = eo_tokenizer_error;
|
|
|
|
{( toknz->p)++; goto _out; } /* necessary to stop scanners */
|
|
|
|
}}
|
|
|
|
break;
|
2014-04-02 04:04:12 -07:00
|
|
|
case 120:
|
2014-04-13 21:56:45 -07:00
|
|
|
#line 401 "lib/eolian/eo_lexer.rl"
|
2014-03-29 21:07:19 -07:00
|
|
|
{ toknz->te = ( toknz->p)+1;{
|
|
|
|
DBG("comment[%d] line%03d:%03d", toknz->cs,
|
|
|
|
toknz->saved.line, toknz->current_line);
|
|
|
|
}}
|
|
|
|
break;
|
2014-04-02 04:04:12 -07:00
|
|
|
case 121:
|
2014-04-13 21:56:45 -07:00
|
|
|
#line 1012 "lib/eolian/eo_lexer.rl"
|
2014-03-29 21:07:19 -07:00
|
|
|
{ toknz->te = ( toknz->p)+1;{
|
|
|
|
if (!toknz->tmp.kls) ABORT(toknz, "No class!!!");
|
|
|
|
INF("begin class: %s", toknz->tmp.kls->name);
|
|
|
|
toknz->current_nesting++;
|
2014-04-03 06:20:58 -07:00
|
|
|
{ toknz->cs = 347; goto _again;}
|
2014-03-29 21:07:19 -07:00
|
|
|
}}
|
|
|
|
break;
|
2014-04-02 04:04:12 -07:00
|
|
|
case 122:
|
2014-04-13 21:56:45 -07:00
|
|
|
#line 410 "lib/eolian/eo_lexer.rl"
|
2014-03-29 21:07:19 -07:00
|
|
|
{ toknz->te = ( toknz->p)+1;{
|
|
|
|
DBG("error[%d]", toknz->cs);
|
|
|
|
char *s, *d;
|
|
|
|
char buf[BUFSIZE];
|
|
|
|
for (s = ( toknz->p), d = buf; (s <= toknz->pe); s++)
|
|
|
|
{
|
|
|
|
if ((*s == '\r') || (*s == '\n'))
|
|
|
|
break;
|
|
|
|
*d++ = *s;
|
|
|
|
}
|
|
|
|
*d = '\0';
|
|
|
|
ERR("error n:%d l:%d c:'%c': %s",
|
|
|
|
toknz->current_nesting, toknz->current_line, *( toknz->p), buf);
|
|
|
|
toknz->cs = eo_tokenizer_error;
|
|
|
|
{( toknz->p)++; goto _out; } /* necessary to stop scanners */
|
|
|
|
}}
|
|
|
|
break;
|
2014-04-02 04:04:12 -07:00
|
|
|
case 123:
|
2014-04-13 21:56:45 -07:00
|
|
|
#line 1047 "lib/eolian/eo_lexer.rl"
|
2014-03-29 21:07:19 -07:00
|
|
|
{ toknz->te = ( toknz->p);( toknz->p)--;}
|
|
|
|
break;
|
2014-04-02 04:04:12 -07:00
|
|
|
case 124:
|
2014-04-13 21:56:45 -07:00
|
|
|
#line 410 "lib/eolian/eo_lexer.rl"
|
2014-03-29 21:07:19 -07:00
|
|
|
{ toknz->te = ( toknz->p);( toknz->p)--;{
|
|
|
|
DBG("error[%d]", toknz->cs);
|
|
|
|
char *s, *d;
|
|
|
|
char buf[BUFSIZE];
|
|
|
|
for (s = ( toknz->p), d = buf; (s <= toknz->pe); s++)
|
|
|
|
{
|
|
|
|
if ((*s == '\r') || (*s == '\n'))
|
|
|
|
break;
|
|
|
|
*d++ = *s;
|
|
|
|
}
|
|
|
|
*d = '\0';
|
|
|
|
ERR("error n:%d l:%d c:'%c': %s",
|
|
|
|
toknz->current_nesting, toknz->current_line, *( toknz->p), buf);
|
|
|
|
toknz->cs = eo_tokenizer_error;
|
|
|
|
{( toknz->p)++; goto _out; } /* necessary to stop scanners */
|
|
|
|
}}
|
|
|
|
break;
|
2014-04-02 04:04:12 -07:00
|
|
|
case 125:
|
2014-04-13 21:56:45 -07:00
|
|
|
#line 410 "lib/eolian/eo_lexer.rl"
|
2014-03-29 21:07:19 -07:00
|
|
|
{{( toknz->p) = (( toknz->te))-1;}{
|
|
|
|
DBG("error[%d]", toknz->cs);
|
|
|
|
char *s, *d;
|
|
|
|
char buf[BUFSIZE];
|
|
|
|
for (s = ( toknz->p), d = buf; (s <= toknz->pe); s++)
|
|
|
|
{
|
|
|
|
if ((*s == '\r') || (*s == '\n'))
|
|
|
|
break;
|
|
|
|
*d++ = *s;
|
|
|
|
}
|
|
|
|
*d = '\0';
|
|
|
|
ERR("error n:%d l:%d c:'%c': %s",
|
|
|
|
toknz->current_nesting, toknz->current_line, *( toknz->p), buf);
|
|
|
|
toknz->cs = eo_tokenizer_error;
|
|
|
|
{( toknz->p)++; goto _out; } /* necessary to stop scanners */
|
|
|
|
}}
|
|
|
|
break;
|
2014-04-13 21:56:45 -07:00
|
|
|
#line 2710 "lib/eolian/eo_lexer.c"
|
2014-03-29 21:07:19 -07:00
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
_again:
|
|
|
|
_acts = _eo_tokenizer_actions + _eo_tokenizer_to_state_actions[ toknz->cs];
|
|
|
|
_nacts = (unsigned int) *_acts++;
|
|
|
|
while ( _nacts-- > 0 ) {
|
|
|
|
switch ( *_acts++ ) {
|
2014-04-02 04:04:12 -07:00
|
|
|
case 37:
|
2014-03-29 21:07:19 -07:00
|
|
|
#line 1 "NONE"
|
|
|
|
{ toknz->ts = 0;}
|
|
|
|
break;
|
2014-04-13 21:56:45 -07:00
|
|
|
#line 2723 "lib/eolian/eo_lexer.c"
|
2014-03-29 21:07:19 -07:00
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
if ( ++( toknz->p) != ( toknz->pe) )
|
|
|
|
goto _resume;
|
|
|
|
_test_eof: {}
|
|
|
|
if ( ( toknz->p) == ( toknz->eof) )
|
|
|
|
{
|
|
|
|
if ( _eo_tokenizer_eof_trans[ toknz->cs] > 0 ) {
|
|
|
|
_trans = _eo_tokenizer_eof_trans[ toknz->cs] - 1;
|
|
|
|
goto _eof_trans;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
_out: {}
|
|
|
|
}
|
|
|
|
|
2014-04-13 21:56:45 -07:00
|
|
|
#line 1102 "lib/eolian/eo_lexer.rl"
|
2014-03-29 21:07:19 -07:00
|
|
|
|
|
|
|
if ( toknz->cs ==
|
2014-04-13 21:56:45 -07:00
|
|
|
#line 2744 "lib/eolian/eo_lexer.c"
|
2014-03-29 21:07:19 -07:00
|
|
|
-1
|
2014-04-13 21:56:45 -07:00
|
|
|
#line 1103 "lib/eolian/eo_lexer.rl"
|
2014-03-29 21:07:19 -07:00
|
|
|
)
|
|
|
|
{
|
|
|
|
ERR("%s: wrong termination", source);
|
|
|
|
ret = EINA_FALSE;
|
|
|
|
break;
|
|
|
|
}
|
|
|
|
|
|
|
|
if ( toknz->ts == 0 )
|
|
|
|
have = 0;
|
|
|
|
else
|
|
|
|
{
|
|
|
|
DBG("move data and pointers before buffer feed");
|
|
|
|
have = toknz->pe - toknz->ts;
|
|
|
|
offset = toknz->ts - toknz->buf;
|
|
|
|
memmove(toknz->buf, toknz->ts, have);
|
|
|
|
toknz->te -= offset;
|
|
|
|
toknz->ts = toknz->buf;
|
|
|
|
}
|
|
|
|
|
|
|
|
if (toknz->saved.tok != NULL)
|
|
|
|
{
|
|
|
|
if ((have == 0) || ((toknz->saved.tok - offset) < toknz->buf))
|
|
|
|
{
|
|
|
|
WRN("reset lost saved token %p", toknz->saved.tok);
|
|
|
|
toknz->saved.tok = NULL;
|
|
|
|
}
|
|
|
|
else
|
|
|
|
toknz->saved.tok -= offset;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
fclose(stream);
|
|
|
|
|
|
|
|
return ret;
|
|
|
|
}
|
|
|
|
|
|
|
|
static Eina_Bool
|
|
|
|
eo_tokenizer_mem_walk(Eo_Tokenizer *toknz, const char *source, char *buffer, unsigned int len)
|
|
|
|
{
|
|
|
|
INF("tokenize %s...", source);
|
|
|
|
toknz->source = eina_stringshare_add(source);
|
|
|
|
|
|
|
|
Eina_Bool ret = EINA_TRUE;
|
|
|
|
|
|
|
|
|
2014-04-13 21:56:45 -07:00
|
|
|
#line 2792 "lib/eolian/eo_lexer.c"
|
2014-03-29 21:07:19 -07:00
|
|
|
{
|
|
|
|
toknz->cs = eo_tokenizer_start;
|
|
|
|
toknz->ts = 0;
|
|
|
|
toknz->te = 0;
|
|
|
|
toknz->act = 0;
|
|
|
|
}
|
|
|
|
|
2014-04-13 21:56:45 -07:00
|
|
|
#line 1148 "lib/eolian/eo_lexer.rl"
|
2014-03-29 21:07:19 -07:00
|
|
|
|
|
|
|
toknz->p = buffer;
|
|
|
|
|
|
|
|
toknz->pe = toknz->p + len;
|
|
|
|
|
|
|
|
toknz->eof = toknz->pe;
|
|
|
|
|
|
|
|
|
2014-04-13 21:56:45 -07:00
|
|
|
#line 2809 "lib/eolian/eo_lexer.c"
|
2014-03-29 21:07:19 -07:00
|
|
|
{
|
|
|
|
int _klen;
|
|
|
|
unsigned int _trans;
|
|
|
|
const char *_acts;
|
|
|
|
unsigned int _nacts;
|
|
|
|
const char *_keys;
|
|
|
|
|
|
|
|
if ( ( toknz->p) == ( toknz->pe) )
|
|
|
|
goto _test_eof;
|
|
|
|
_resume:
|
|
|
|
_acts = _eo_tokenizer_actions + _eo_tokenizer_from_state_actions[ toknz->cs];
|
|
|
|
_nacts = (unsigned int) *_acts++;
|
|
|
|
while ( _nacts-- > 0 ) {
|
|
|
|
switch ( *_acts++ ) {
|
2014-04-02 04:04:12 -07:00
|
|
|
case 38:
|
2014-03-29 21:07:19 -07:00
|
|
|
#line 1 "NONE"
|
|
|
|
{ toknz->ts = ( toknz->p);}
|
|
|
|
break;
|
2014-04-13 21:56:45 -07:00
|
|
|
#line 2828 "lib/eolian/eo_lexer.c"
|
2014-03-29 21:07:19 -07:00
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
_keys = _eo_tokenizer_trans_keys + _eo_tokenizer_key_offsets[ toknz->cs];
|
|
|
|
_trans = _eo_tokenizer_index_offsets[ toknz->cs];
|
|
|
|
|
|
|
|
_klen = _eo_tokenizer_single_lengths[ toknz->cs];
|
|
|
|
if ( _klen > 0 ) {
|
|
|
|
const char *_lower = _keys;
|
|
|
|
const char *_mid;
|
|
|
|
const char *_upper = _keys + _klen - 1;
|
|
|
|
while (1) {
|
|
|
|
if ( _upper < _lower )
|
|
|
|
break;
|
|
|
|
|
|
|
|
_mid = _lower + ((_upper-_lower) >> 1);
|
|
|
|
if ( (*( toknz->p)) < *_mid )
|
|
|
|
_upper = _mid - 1;
|
|
|
|
else if ( (*( toknz->p)) > *_mid )
|
|
|
|
_lower = _mid + 1;
|
|
|
|
else {
|
|
|
|
_trans += (unsigned int)(_mid - _keys);
|
|
|
|
goto _match;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
_keys += _klen;
|
|
|
|
_trans += _klen;
|
|
|
|
}
|
|
|
|
|
|
|
|
_klen = _eo_tokenizer_range_lengths[ toknz->cs];
|
|
|
|
if ( _klen > 0 ) {
|
|
|
|
const char *_lower = _keys;
|
|
|
|
const char *_mid;
|
|
|
|
const char *_upper = _keys + (_klen<<1) - 2;
|
|
|
|
while (1) {
|
|
|
|
if ( _upper < _lower )
|
|
|
|
break;
|
|
|
|
|
|
|
|
_mid = _lower + (((_upper-_lower) >> 1) & ~1);
|
|
|
|
if ( (*( toknz->p)) < _mid[0] )
|
|
|
|
_upper = _mid - 2;
|
|
|
|
else if ( (*( toknz->p)) > _mid[1] )
|
|
|
|
_lower = _mid + 2;
|
|
|
|
else {
|
|
|
|
_trans += (unsigned int)((_mid - _keys)>>1);
|
|
|
|
goto _match;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
_trans += _klen;
|
|
|
|
}
|
|
|
|
|
|
|
|
_match:
|
|
|
|
_trans = _eo_tokenizer_indicies[_trans];
|
|
|
|
_eof_trans:
|
|
|
|
toknz->cs = _eo_tokenizer_trans_targs[_trans];
|
|
|
|
|
|
|
|
if ( _eo_tokenizer_trans_actions[_trans] == 0 )
|
|
|
|
goto _again;
|
|
|
|
|
|
|
|
_acts = _eo_tokenizer_actions + _eo_tokenizer_trans_actions[_trans];
|
|
|
|
_nacts = (unsigned int) *_acts++;
|
|
|
|
while ( _nacts-- > 0 )
|
|
|
|
{
|
|
|
|
switch ( *_acts++ )
|
|
|
|
{
|
|
|
|
case 0:
|
2014-04-13 21:56:45 -07:00
|
|
|
#line 386 "lib/eolian/eo_lexer.rl"
|
2014-03-29 21:07:19 -07:00
|
|
|
{
|
|
|
|
toknz->current_line += 1;
|
|
|
|
DBG("inc[%d] %d", toknz->cs, toknz->current_line);
|
|
|
|
}
|
|
|
|
break;
|
|
|
|
case 1:
|
2014-04-13 21:56:45 -07:00
|
|
|
#line 391 "lib/eolian/eo_lexer.rl"
|
2014-03-29 21:07:19 -07:00
|
|
|
{
|
|
|
|
toknz->saved.line = toknz->current_line;
|
|
|
|
DBG("save line[%d] %d", toknz->cs, toknz->current_line);
|
|
|
|
}
|
|
|
|
break;
|
|
|
|
case 2:
|
2014-04-13 21:56:45 -07:00
|
|
|
#line 396 "lib/eolian/eo_lexer.rl"
|
2014-03-29 21:07:19 -07:00
|
|
|
{
|
|
|
|
toknz->saved.tok = ( toknz->p);
|
|
|
|
DBG("save token[%d] %p %c", toknz->cs, ( toknz->p), *( toknz->p));
|
|
|
|
}
|
|
|
|
break;
|
|
|
|
case 3:
|
2014-04-13 21:56:45 -07:00
|
|
|
#line 473 "lib/eolian/eo_lexer.rl"
|
2014-03-29 21:07:19 -07:00
|
|
|
{
|
|
|
|
if (!toknz->tmp.accessor) ABORT(toknz, "No accessor!!!");
|
|
|
|
if (toknz->tmp.accessor->ret != NULL)
|
|
|
|
ABORT(toknz, "accessor has already a return type");
|
|
|
|
toknz->tmp.accessor->ret = _eo_tokenizer_return_get(toknz, ( toknz->p));
|
|
|
|
}
|
|
|
|
break;
|
|
|
|
case 4:
|
2014-04-13 21:56:45 -07:00
|
|
|
#line 480 "lib/eolian/eo_lexer.rl"
|
2014-03-29 21:07:19 -07:00
|
|
|
{
|
|
|
|
if (!toknz->tmp.accessor) ABORT(toknz, "No accessor!!!");
|
|
|
|
if (!toknz->tmp.accessor->ret) ABORT(toknz, "No ret!!!");
|
|
|
|
if (toknz->tmp.accessor->ret->comment != NULL)
|
|
|
|
ABORT(toknz, "accessor return type has already a comment");
|
|
|
|
toknz->tmp.accessor->ret->comment = _eo_tokenizer_token_get(toknz, ( toknz->p)-2);
|
|
|
|
INF(" %s", toknz->tmp.accessor->ret->comment);
|
|
|
|
}
|
|
|
|
break;
|
|
|
|
case 5:
|
2014-04-13 21:56:45 -07:00
|
|
|
#line 489 "lib/eolian/eo_lexer.rl"
|
2014-03-29 21:07:19 -07:00
|
|
|
{
|
|
|
|
if (!toknz->tmp.accessor) ABORT(toknz, "No accessor!!!");
|
|
|
|
toknz->tmp.accessor->legacy = _eo_tokenizer_token_get(toknz, ( toknz->p));
|
|
|
|
}
|
|
|
|
break;
|
|
|
|
case 6:
|
2014-04-13 21:56:45 -07:00
|
|
|
#line 503 "lib/eolian/eo_lexer.rl"
|
2014-03-29 21:07:19 -07:00
|
|
|
{
|
|
|
|
toknz->tmp.accessor_param = _eo_tokenizer_accessor_param_get(toknz, ( toknz->p));
|
|
|
|
}
|
|
|
|
break;
|
|
|
|
case 7:
|
2014-04-13 21:56:45 -07:00
|
|
|
#line 507 "lib/eolian/eo_lexer.rl"
|
2014-03-29 21:07:19 -07:00
|
|
|
{
|
|
|
|
if (!toknz->tmp.accessor_param)
|
|
|
|
ABORT(toknz, "No accessor param!!!");
|
|
|
|
toknz->tmp.accessor_param->attrs = _eo_tokenizer_token_get(toknz, ( toknz->p));
|
|
|
|
toknz->tmp.accessor->params =
|
|
|
|
eina_list_append(toknz->tmp.accessor->params, toknz->tmp.accessor_param);
|
|
|
|
toknz->tmp.accessor_param = NULL;
|
|
|
|
}
|
|
|
|
break;
|
|
|
|
case 8:
|
2014-04-13 21:56:45 -07:00
|
|
|
#line 536 "lib/eolian/eo_lexer.rl"
|
2014-03-29 21:07:19 -07:00
|
|
|
{
|
|
|
|
const char *c = _eo_tokenizer_token_get(toknz, ( toknz->p)-2);
|
|
|
|
if (toknz->tmp.param == NULL)
|
|
|
|
ABORT(toknz, "no parameter set to associate this comment to: %s", c);
|
|
|
|
toknz->tmp.param->comment = c;
|
|
|
|
toknz->tmp.param = NULL;
|
|
|
|
}
|
|
|
|
break;
|
|
|
|
case 9:
|
2014-04-13 21:56:45 -07:00
|
|
|
#line 544 "lib/eolian/eo_lexer.rl"
|
2014-03-29 21:07:19 -07:00
|
|
|
{
|
|
|
|
toknz->tmp.param = _eo_tokenizer_param_get(toknz, ( toknz->p));
|
|
|
|
if (toknz->tmp.params)
|
|
|
|
*(toknz->tmp.params) = eina_list_append(*(toknz->tmp.params), toknz->tmp.param);
|
|
|
|
else
|
|
|
|
ABORT(toknz, "got a param but there is no property nor method waiting for it");
|
|
|
|
INF(" %s : %s", toknz->tmp.param->name, toknz->tmp.param->type);
|
|
|
|
}
|
|
|
|
break;
|
|
|
|
case 10:
|
2014-04-03 06:20:58 -07:00
|
|
|
#line 642 "lib/eolian/eo_lexer.rl"
|
2014-03-29 21:07:19 -07:00
|
|
|
{
|
|
|
|
if (toknz->tmp.prop != NULL)
|
|
|
|
ABORT(toknz, "there is a pending property definition %s", toknz->tmp.prop->name);
|
|
|
|
toknz->tmp.prop = _eo_tokenizer_property_get(toknz, ( toknz->p));
|
|
|
|
}
|
|
|
|
break;
|
|
|
|
case 11:
|
2014-04-03 06:20:58 -07:00
|
|
|
#line 682 "lib/eolian/eo_lexer.rl"
|
2014-03-29 21:07:19 -07:00
|
|
|
{
|
|
|
|
if (!toknz->tmp.meth) ABORT(toknz, "No method!!!");
|
|
|
|
if (toknz->tmp.meth->ret != NULL)
|
|
|
|
ABORT(toknz, "method '%s' has already a return type", toknz->tmp.meth->name);
|
|
|
|
toknz->tmp.meth->ret = _eo_tokenizer_return_get(toknz, ( toknz->p));
|
|
|
|
}
|
|
|
|
break;
|
|
|
|
case 12:
|
2014-04-03 06:20:58 -07:00
|
|
|
#line 689 "lib/eolian/eo_lexer.rl"
|
2014-03-29 21:07:19 -07:00
|
|
|
{
|
|
|
|
if (!toknz->tmp.meth) ABORT(toknz, "No method!!!");
|
|
|
|
if (toknz->tmp.meth->ret != NULL) ABORT(toknz, "No ret!!!");
|
|
|
|
if (toknz->tmp.meth->ret->comment != NULL)
|
|
|
|
ABORT(toknz, "method '%s' return type has already a comment", toknz->tmp.meth->name);
|
|
|
|
toknz->tmp.meth->ret->comment = _eo_tokenizer_token_get(toknz, ( toknz->p)-2);
|
|
|
|
INF(" %s", toknz->tmp.meth->ret->comment);
|
|
|
|
}
|
|
|
|
break;
|
|
|
|
case 13:
|
2014-04-03 06:20:58 -07:00
|
|
|
#line 698 "lib/eolian/eo_lexer.rl"
|
2014-03-29 21:07:19 -07:00
|
|
|
{
|
|
|
|
if (!toknz->tmp.meth) ABORT(toknz, "No method!!!");
|
|
|
|
toknz->tmp.meth->legacy = _eo_tokenizer_token_get(toknz, ( toknz->p));
|
|
|
|
}
|
|
|
|
break;
|
|
|
|
case 14:
|
2014-04-03 06:20:58 -07:00
|
|
|
#line 703 "lib/eolian/eo_lexer.rl"
|
2014-03-29 21:07:19 -07:00
|
|
|
{
|
|
|
|
if (!toknz->tmp.meth) ABORT(toknz, "No method!!!");
|
|
|
|
toknz->tmp.meth->obj_const = EINA_TRUE;
|
|
|
|
INF(" obj const");
|
|
|
|
}
|
|
|
|
break;
|
|
|
|
case 15:
|
2014-04-13 21:56:45 -07:00
|
|
|
#line 763 "lib/eolian/eo_lexer.rl"
|
2014-03-29 21:07:19 -07:00
|
|
|
{
|
|
|
|
if (toknz->tmp.meth != NULL)
|
|
|
|
ABORT(toknz, "there is a pending method definition %s", toknz->tmp.meth->name);
|
|
|
|
toknz->tmp.meth = _eo_tokenizer_method_get(toknz, ( toknz->p));
|
|
|
|
}
|
|
|
|
break;
|
|
|
|
case 16:
|
2014-04-13 21:56:45 -07:00
|
|
|
#line 795 "lib/eolian/eo_lexer.rl"
|
2014-03-29 21:07:19 -07:00
|
|
|
{
|
|
|
|
const char *base = _eo_tokenizer_token_get(toknz, ( toknz->p));
|
|
|
|
toknz->tmp.str_items = eina_list_append(toknz->tmp.str_items, base);
|
|
|
|
}
|
|
|
|
break;
|
|
|
|
case 17:
|
2014-04-13 21:56:45 -07:00
|
|
|
#line 800 "lib/eolian/eo_lexer.rl"
|
2014-03-29 21:07:19 -07:00
|
|
|
{
|
|
|
|
if (!toknz->tmp.kls) ABORT(toknz, "No class!!!");
|
|
|
|
toknz->tmp.kls->inherits = toknz->tmp.str_items;
|
|
|
|
toknz->tmp.str_items = NULL;
|
|
|
|
}
|
|
|
|
break;
|
|
|
|
case 18:
|
2014-04-13 21:56:45 -07:00
|
|
|
#line 848 "lib/eolian/eo_lexer.rl"
|
2014-03-29 21:07:19 -07:00
|
|
|
{
|
|
|
|
if (!toknz->tmp.kls) ABORT(toknz, "No class!!!");
|
|
|
|
toknz->tmp.event = _eo_tokenizer_event_get(toknz, ( toknz->p));
|
|
|
|
toknz->tmp.kls->events = eina_list_append(toknz->tmp.kls->events, toknz->tmp.event);
|
|
|
|
}
|
|
|
|
break;
|
|
|
|
case 19:
|
2014-04-13 21:56:45 -07:00
|
|
|
#line 854 "lib/eolian/eo_lexer.rl"
|
2014-03-29 21:07:19 -07:00
|
|
|
{
|
|
|
|
if (!toknz->tmp.event) ABORT(toknz, "No event!!!");
|
2014-04-02 04:04:12 -07:00
|
|
|
if (toknz->tmp.event->type != NULL)
|
|
|
|
ABORT(toknz, "event %s has already a type %s", toknz->tmp.event->name, toknz->tmp.event->type);
|
|
|
|
toknz->tmp.event->type = _eo_tokenizer_token_get(toknz, ( toknz->p)-1);
|
|
|
|
}
|
|
|
|
break;
|
|
|
|
case 20:
|
2014-04-13 21:56:45 -07:00
|
|
|
#line 861 "lib/eolian/eo_lexer.rl"
|
2014-04-02 04:04:12 -07:00
|
|
|
{
|
|
|
|
if (!toknz->tmp.event) ABORT(toknz, "No event!!!");
|
2014-03-29 21:07:19 -07:00
|
|
|
if (toknz->tmp.event->comment != NULL)
|
|
|
|
ABORT(toknz, "event %s has already a comment", toknz->tmp.event->name);
|
|
|
|
toknz->tmp.event->comment = _eo_tokenizer_token_get(toknz, ( toknz->p)-2);
|
|
|
|
toknz->tmp.event = NULL;
|
|
|
|
}
|
|
|
|
break;
|
2014-04-02 04:04:12 -07:00
|
|
|
case 21:
|
2014-04-13 21:56:45 -07:00
|
|
|
#line 869 "lib/eolian/eo_lexer.rl"
|
2014-03-29 21:07:19 -07:00
|
|
|
{
|
|
|
|
if (!toknz->tmp.kls) ABORT(toknz, "No class!!!");
|
|
|
|
if (toknz->tmp.kls->legacy_prefix != NULL)
|
|
|
|
ABORT(toknz, "A legacy prefix has already been given");
|
|
|
|
toknz->tmp.kls->legacy_prefix = _eo_tokenizer_token_get(toknz, ( toknz->p));
|
|
|
|
}
|
|
|
|
break;
|
2014-04-02 04:04:12 -07:00
|
|
|
case 22:
|
2014-04-13 21:56:45 -07:00
|
|
|
#line 878 "lib/eolian/eo_lexer.rl"
|
2014-03-29 21:07:19 -07:00
|
|
|
{
|
|
|
|
if (!toknz->tmp.kls) ABORT(toknz, "No class!!!");
|
|
|
|
if (toknz->tmp.kls->eo_prefix != NULL)
|
|
|
|
ABORT(toknz, "An Eo prefix has already been given");
|
|
|
|
toknz->tmp.kls->eo_prefix = _eo_tokenizer_token_get(toknz, ( toknz->p));
|
|
|
|
}
|
|
|
|
break;
|
2014-04-02 04:04:12 -07:00
|
|
|
case 23:
|
2014-04-13 21:56:45 -07:00
|
|
|
#line 887 "lib/eolian/eo_lexer.rl"
|
2014-03-29 21:07:19 -07:00
|
|
|
{
|
|
|
|
if (!toknz->tmp.kls) ABORT(toknz, "No class!!!");
|
|
|
|
if (toknz->tmp.kls->data_type != NULL)
|
|
|
|
ABORT(toknz, "A data type has already been given");
|
|
|
|
toknz->tmp.kls->data_type = _eo_tokenizer_token_get(toknz, ( toknz->p));
|
|
|
|
}
|
|
|
|
break;
|
2014-04-02 04:04:12 -07:00
|
|
|
case 24:
|
2014-04-13 21:56:45 -07:00
|
|
|
#line 900 "lib/eolian/eo_lexer.rl"
|
2014-03-29 21:07:19 -07:00
|
|
|
{
|
|
|
|
if (!toknz->tmp.kls) ABORT(toknz, "No class!!!");
|
|
|
|
toknz->tmp.impl = _eo_tokenizer_implement_get(toknz, ( toknz->p));
|
|
|
|
toknz->tmp.kls->implements = eina_list_append(toknz->tmp.kls->implements, toknz->tmp.impl);
|
|
|
|
}
|
|
|
|
break;
|
2014-04-02 04:04:12 -07:00
|
|
|
case 25:
|
2014-04-13 21:56:45 -07:00
|
|
|
#line 906 "lib/eolian/eo_lexer.rl"
|
2014-03-29 21:07:19 -07:00
|
|
|
{
|
|
|
|
if (!toknz->tmp.impl) ABORT(toknz, "No implement!!!");
|
|
|
|
if (toknz->tmp.impl->legacy)
|
|
|
|
ABORT(toknz, "Legacy section already allocated for implement item");
|
|
|
|
toknz->tmp.impl->legacy = calloc(1, sizeof(Eo_Implement_Legacy_Def));
|
|
|
|
}
|
|
|
|
break;
|
2014-04-02 04:04:12 -07:00
|
|
|
case 26:
|
2014-04-13 21:56:45 -07:00
|
|
|
#line 913 "lib/eolian/eo_lexer.rl"
|
2014-03-29 21:07:19 -07:00
|
|
|
{
|
|
|
|
if (!toknz->tmp.impl) ABORT(toknz, "No implement!!!");
|
|
|
|
if (!toknz->tmp.impl->legacy)
|
|
|
|
ABORT(toknz, "No legacy section");
|
|
|
|
toknz->tmp.impl->legacy->function_name = _eo_tokenizer_token_get(toknz, ( toknz->p));
|
|
|
|
}
|
|
|
|
break;
|
2014-04-02 04:04:12 -07:00
|
|
|
case 27:
|
2014-04-13 21:56:45 -07:00
|
|
|
#line 920 "lib/eolian/eo_lexer.rl"
|
2014-03-29 21:07:19 -07:00
|
|
|
{
|
|
|
|
if (!toknz->tmp.impl) ABORT(toknz, "No implement!!!");
|
|
|
|
toknz->tmp.impl_leg_param = calloc(1, sizeof(Eo_Implement_Legacy_Param_Def));
|
|
|
|
toknz->tmp.impl->legacy->params = eina_list_append(
|
|
|
|
toknz->tmp.impl->legacy->params, toknz->tmp.impl_leg_param);
|
|
|
|
|
|
|
|
toknz->tmp.impl_leg_param->eo_name = _eo_tokenizer_token_get(toknz, ( toknz->p));
|
|
|
|
}
|
|
|
|
break;
|
2014-04-02 04:04:12 -07:00
|
|
|
case 28:
|
2014-04-13 21:56:45 -07:00
|
|
|
#line 929 "lib/eolian/eo_lexer.rl"
|
2014-03-29 21:07:19 -07:00
|
|
|
{
|
|
|
|
if (!toknz->tmp.impl_leg_param)
|
|
|
|
ABORT(toknz, "No implement legacy param!!!");
|
|
|
|
toknz->tmp.impl_leg_param->legacy_name = _eo_tokenizer_token_get(toknz, ( toknz->p));
|
|
|
|
}
|
|
|
|
break;
|
2014-04-02 04:04:12 -07:00
|
|
|
case 29:
|
2014-04-13 21:56:45 -07:00
|
|
|
#line 935 "lib/eolian/eo_lexer.rl"
|
2014-03-29 21:07:19 -07:00
|
|
|
{
|
|
|
|
if (!toknz->tmp.impl_leg_param)
|
|
|
|
ABORT(toknz, "No implement legacy param!!!");
|
|
|
|
toknz->tmp.impl_leg_param->comment = _eo_tokenizer_token_get(toknz, ( toknz->p)-2);
|
|
|
|
}
|
|
|
|
break;
|
2014-04-02 04:04:12 -07:00
|
|
|
case 30:
|
2014-04-13 21:56:45 -07:00
|
|
|
#line 941 "lib/eolian/eo_lexer.rl"
|
2014-03-29 21:07:19 -07:00
|
|
|
{
|
|
|
|
if (!toknz->tmp.impl) ABORT(toknz, "No implement!!!");
|
|
|
|
if (!toknz->tmp.impl->legacy)
|
|
|
|
ABORT(toknz, "No legacy section");
|
|
|
|
toknz->tmp.impl->legacy->ret_type= _eo_tokenizer_token_get(toknz, ( toknz->p));
|
|
|
|
}
|
|
|
|
break;
|
2014-04-02 04:04:12 -07:00
|
|
|
case 31:
|
2014-04-13 21:56:45 -07:00
|
|
|
#line 948 "lib/eolian/eo_lexer.rl"
|
2014-03-29 21:07:19 -07:00
|
|
|
{
|
|
|
|
if (!toknz->tmp.impl) ABORT(toknz, "No implement!!!");
|
|
|
|
if (!toknz->tmp.impl->legacy)
|
|
|
|
ABORT(toknz, "No legacy section");
|
|
|
|
toknz->tmp.impl->legacy->ret_value = _eo_tokenizer_token_get(toknz, ( toknz->p));
|
|
|
|
}
|
|
|
|
break;
|
2014-04-02 04:04:12 -07:00
|
|
|
case 32:
|
2014-04-13 21:56:45 -07:00
|
|
|
#line 1019 "lib/eolian/eo_lexer.rl"
|
2014-03-29 21:07:19 -07:00
|
|
|
{
|
|
|
|
toknz->tmp.kls_type = EOLIAN_CLASS_REGULAR;
|
|
|
|
}
|
|
|
|
break;
|
2014-04-02 04:04:12 -07:00
|
|
|
case 33:
|
2014-04-13 21:56:45 -07:00
|
|
|
#line 1022 "lib/eolian/eo_lexer.rl"
|
2014-03-29 21:07:19 -07:00
|
|
|
{
|
|
|
|
toknz->tmp.kls_type = EOLIAN_CLASS_ABSTRACT;
|
|
|
|
}
|
|
|
|
break;
|
2014-04-02 04:04:12 -07:00
|
|
|
case 34:
|
2014-04-13 21:56:45 -07:00
|
|
|
#line 1025 "lib/eolian/eo_lexer.rl"
|
2014-03-29 21:07:19 -07:00
|
|
|
{
|
|
|
|
toknz->tmp.kls_type = EOLIAN_CLASS_MIXIN;
|
|
|
|
}
|
|
|
|
break;
|
2014-04-02 04:04:12 -07:00
|
|
|
case 35:
|
2014-04-13 21:56:45 -07:00
|
|
|
#line 1028 "lib/eolian/eo_lexer.rl"
|
2014-03-29 21:07:19 -07:00
|
|
|
{
|
|
|
|
toknz->tmp.kls_type = EOLIAN_CLASS_INTERFACE;
|
|
|
|
}
|
|
|
|
break;
|
2014-04-02 04:04:12 -07:00
|
|
|
case 36:
|
2014-04-13 21:56:45 -07:00
|
|
|
#line 1032 "lib/eolian/eo_lexer.rl"
|
2014-03-29 21:07:19 -07:00
|
|
|
{
|
|
|
|
if (toknz->tmp.kls != NULL)
|
|
|
|
ABORT(toknz, "there is a pending class definition %s", toknz->tmp.kls->name);
|
|
|
|
toknz->tmp.kls = _eo_tokenizer_class_get(toknz, ( toknz->p));
|
|
|
|
toknz->tmp.kls->type = toknz->tmp.kls_type;
|
|
|
|
}
|
|
|
|
break;
|
2014-04-02 04:04:12 -07:00
|
|
|
case 39:
|
2014-03-29 21:07:19 -07:00
|
|
|
#line 1 "NONE"
|
|
|
|
{ toknz->te = ( toknz->p)+1;}
|
|
|
|
break;
|
2014-04-02 04:04:12 -07:00
|
|
|
case 40:
|
2014-04-13 21:56:45 -07:00
|
|
|
#line 465 "lib/eolian/eo_lexer.rl"
|
2014-03-29 21:07:19 -07:00
|
|
|
{ toknz->te = ( toknz->p)+1;{
|
|
|
|
if (!toknz->tmp.accessor) ABORT(toknz, "No accessor!!!");
|
|
|
|
if (toknz->tmp.accessor->comment != NULL)
|
|
|
|
ABORT(toknz, "accessor has already a comment");
|
|
|
|
toknz->tmp.accessor->comment = _eo_tokenizer_token_get(toknz, ( toknz->p)-1);
|
|
|
|
INF(" %s", toknz->tmp.accessor->comment);
|
|
|
|
}}
|
|
|
|
break;
|
2014-04-02 04:04:12 -07:00
|
|
|
case 41:
|
2014-04-13 21:56:45 -07:00
|
|
|
#line 401 "lib/eolian/eo_lexer.rl"
|
2014-03-29 21:07:19 -07:00
|
|
|
{ toknz->te = ( toknz->p)+1;{
|
|
|
|
DBG("comment[%d] line%03d:%03d", toknz->cs,
|
|
|
|
toknz->saved.line, toknz->current_line);
|
|
|
|
}}
|
|
|
|
break;
|
2014-04-02 04:04:12 -07:00
|
|
|
case 42:
|
2014-04-13 21:56:45 -07:00
|
|
|
#line 528 "lib/eolian/eo_lexer.rl"
|
2014-03-29 21:07:19 -07:00
|
|
|
{ toknz->te = ( toknz->p)+1;}
|
|
|
|
break;
|
2014-04-02 04:04:12 -07:00
|
|
|
case 43:
|
2014-04-13 21:56:45 -07:00
|
|
|
#line 529 "lib/eolian/eo_lexer.rl"
|
2014-03-29 21:07:19 -07:00
|
|
|
{ toknz->te = ( toknz->p)+1;}
|
|
|
|
break;
|
2014-04-02 04:04:12 -07:00
|
|
|
case 44:
|
2014-04-13 21:56:45 -07:00
|
|
|
#line 494 "lib/eolian/eo_lexer.rl"
|
2014-03-29 21:07:19 -07:00
|
|
|
{ toknz->te = ( toknz->p)+1;{
|
|
|
|
INF(" }");
|
|
|
|
if (!toknz->tmp.prop) ABORT(toknz, "No prop!!!");
|
|
|
|
toknz->tmp.prop->accessors = eina_list_append(toknz->tmp.prop->accessors, toknz->tmp.accessor);
|
|
|
|
toknz->tmp.accessor = NULL;
|
|
|
|
toknz->current_nesting--;
|
2014-04-03 06:20:58 -07:00
|
|
|
{ toknz->cs = 319; goto _again;}
|
2014-03-29 21:07:19 -07:00
|
|
|
}}
|
|
|
|
break;
|
2014-04-02 04:04:12 -07:00
|
|
|
case 45:
|
2014-04-13 21:56:45 -07:00
|
|
|
#line 410 "lib/eolian/eo_lexer.rl"
|
2014-03-29 21:07:19 -07:00
|
|
|
{ toknz->te = ( toknz->p)+1;{
|
|
|
|
DBG("error[%d]", toknz->cs);
|
|
|
|
char *s, *d;
|
|
|
|
char buf[BUFSIZE];
|
|
|
|
for (s = ( toknz->p), d = buf; (s <= toknz->pe); s++)
|
|
|
|
{
|
|
|
|
if ((*s == '\r') || (*s == '\n'))
|
|
|
|
break;
|
|
|
|
*d++ = *s;
|
|
|
|
}
|
|
|
|
*d = '\0';
|
|
|
|
ERR("error n:%d l:%d c:'%c': %s",
|
|
|
|
toknz->current_nesting, toknz->current_line, *( toknz->p), buf);
|
|
|
|
toknz->cs = eo_tokenizer_error;
|
|
|
|
{( toknz->p)++; goto _out; } /* necessary to stop scanners */
|
|
|
|
}}
|
|
|
|
break;
|
2014-04-02 04:04:12 -07:00
|
|
|
case 46:
|
2014-04-13 21:56:45 -07:00
|
|
|
#line 524 "lib/eolian/eo_lexer.rl"
|
2014-03-29 21:07:19 -07:00
|
|
|
{ toknz->te = ( toknz->p);( toknz->p)--;}
|
|
|
|
break;
|
2014-04-02 04:04:12 -07:00
|
|
|
case 47:
|
2014-04-13 21:56:45 -07:00
|
|
|
#line 527 "lib/eolian/eo_lexer.rl"
|
2014-03-29 21:07:19 -07:00
|
|
|
{ toknz->te = ( toknz->p);( toknz->p)--;}
|
|
|
|
break;
|
2014-04-02 04:04:12 -07:00
|
|
|
case 48:
|
2014-04-13 21:56:45 -07:00
|
|
|
#line 494 "lib/eolian/eo_lexer.rl"
|
2014-03-29 21:07:19 -07:00
|
|
|
{ toknz->te = ( toknz->p);( toknz->p)--;{
|
|
|
|
INF(" }");
|
|
|
|
if (!toknz->tmp.prop) ABORT(toknz, "No prop!!!");
|
|
|
|
toknz->tmp.prop->accessors = eina_list_append(toknz->tmp.prop->accessors, toknz->tmp.accessor);
|
|
|
|
toknz->tmp.accessor = NULL;
|
|
|
|
toknz->current_nesting--;
|
2014-04-03 06:20:58 -07:00
|
|
|
{ toknz->cs = 319; goto _again;}
|
2014-03-29 21:07:19 -07:00
|
|
|
}}
|
|
|
|
break;
|
2014-04-02 04:04:12 -07:00
|
|
|
case 49:
|
2014-04-13 21:56:45 -07:00
|
|
|
#line 410 "lib/eolian/eo_lexer.rl"
|
2014-03-29 21:07:19 -07:00
|
|
|
{ toknz->te = ( toknz->p);( toknz->p)--;{
|
|
|
|
DBG("error[%d]", toknz->cs);
|
|
|
|
char *s, *d;
|
|
|
|
char buf[BUFSIZE];
|
|
|
|
for (s = ( toknz->p), d = buf; (s <= toknz->pe); s++)
|
|
|
|
{
|
|
|
|
if ((*s == '\r') || (*s == '\n'))
|
|
|
|
break;
|
|
|
|
*d++ = *s;
|
|
|
|
}
|
|
|
|
*d = '\0';
|
|
|
|
ERR("error n:%d l:%d c:'%c': %s",
|
|
|
|
toknz->current_nesting, toknz->current_line, *( toknz->p), buf);
|
|
|
|
toknz->cs = eo_tokenizer_error;
|
|
|
|
{( toknz->p)++; goto _out; } /* necessary to stop scanners */
|
|
|
|
}}
|
|
|
|
break;
|
2014-04-02 04:04:12 -07:00
|
|
|
case 50:
|
2014-04-13 21:56:45 -07:00
|
|
|
#line 527 "lib/eolian/eo_lexer.rl"
|
2014-03-29 21:07:19 -07:00
|
|
|
{{( toknz->p) = (( toknz->te))-1;}}
|
|
|
|
break;
|
2014-04-02 04:04:12 -07:00
|
|
|
case 51:
|
2014-04-13 21:56:45 -07:00
|
|
|
#line 410 "lib/eolian/eo_lexer.rl"
|
2014-03-29 21:07:19 -07:00
|
|
|
{{( toknz->p) = (( toknz->te))-1;}{
|
|
|
|
DBG("error[%d]", toknz->cs);
|
|
|
|
char *s, *d;
|
|
|
|
char buf[BUFSIZE];
|
|
|
|
for (s = ( toknz->p), d = buf; (s <= toknz->pe); s++)
|
|
|
|
{
|
|
|
|
if ((*s == '\r') || (*s == '\n'))
|
|
|
|
break;
|
|
|
|
*d++ = *s;
|
|
|
|
}
|
|
|
|
*d = '\0';
|
|
|
|
ERR("error n:%d l:%d c:'%c': %s",
|
|
|
|
toknz->current_nesting, toknz->current_line, *( toknz->p), buf);
|
|
|
|
toknz->cs = eo_tokenizer_error;
|
|
|
|
{( toknz->p)++; goto _out; } /* necessary to stop scanners */
|
|
|
|
}}
|
|
|
|
break;
|
2014-04-02 04:04:12 -07:00
|
|
|
case 52:
|
2014-04-13 21:56:45 -07:00
|
|
|
#line 401 "lib/eolian/eo_lexer.rl"
|
2014-03-29 21:07:19 -07:00
|
|
|
{ toknz->te = ( toknz->p)+1;{
|
|
|
|
DBG("comment[%d] line%03d:%03d", toknz->cs,
|
|
|
|
toknz->saved.line, toknz->current_line);
|
|
|
|
}}
|
|
|
|
break;
|
2014-04-02 04:04:12 -07:00
|
|
|
case 53:
|
2014-04-13 21:56:45 -07:00
|
|
|
#line 553 "lib/eolian/eo_lexer.rl"
|
2014-03-29 21:07:19 -07:00
|
|
|
{ toknz->te = ( toknz->p)+1;{
|
|
|
|
INF(" }");
|
|
|
|
toknz->tmp.param = NULL;
|
|
|
|
toknz->current_nesting--;
|
|
|
|
if (toknz->tmp.prop)
|
2014-04-03 06:20:58 -07:00
|
|
|
{ toknz->cs = 319; goto _again;}
|
2014-03-29 21:07:19 -07:00
|
|
|
else if (toknz->tmp.meth)
|
2014-04-03 06:20:58 -07:00
|
|
|
{ toknz->cs = 332; goto _again;}
|
2014-03-29 21:07:19 -07:00
|
|
|
else
|
|
|
|
ABORT(toknz, "leaving tokenize_params but there is no property nor method pending");
|
|
|
|
}}
|
|
|
|
break;
|
2014-04-02 04:04:12 -07:00
|
|
|
case 54:
|
2014-04-13 21:56:45 -07:00
|
|
|
#line 410 "lib/eolian/eo_lexer.rl"
|
2014-03-29 21:07:19 -07:00
|
|
|
{ toknz->te = ( toknz->p)+1;{
|
|
|
|
DBG("error[%d]", toknz->cs);
|
|
|
|
char *s, *d;
|
|
|
|
char buf[BUFSIZE];
|
|
|
|
for (s = ( toknz->p), d = buf; (s <= toknz->pe); s++)
|
|
|
|
{
|
|
|
|
if ((*s == '\r') || (*s == '\n'))
|
|
|
|
break;
|
|
|
|
*d++ = *s;
|
|
|
|
}
|
|
|
|
*d = '\0';
|
|
|
|
ERR("error n:%d l:%d c:'%c': %s",
|
|
|
|
toknz->current_nesting, toknz->current_line, *( toknz->p), buf);
|
|
|
|
toknz->cs = eo_tokenizer_error;
|
|
|
|
{( toknz->p)++; goto _out; } /* necessary to stop scanners */
|
|
|
|
}}
|
|
|
|
break;
|
2014-04-02 04:04:12 -07:00
|
|
|
case 55:
|
2014-04-13 21:56:45 -07:00
|
|
|
#line 569 "lib/eolian/eo_lexer.rl"
|
2014-03-29 21:07:19 -07:00
|
|
|
{ toknz->te = ( toknz->p);( toknz->p)--;}
|
|
|
|
break;
|
2014-04-02 04:04:12 -07:00
|
|
|
case 56:
|
2014-04-13 21:56:45 -07:00
|
|
|
#line 571 "lib/eolian/eo_lexer.rl"
|
2014-03-29 21:07:19 -07:00
|
|
|
{ toknz->te = ( toknz->p);( toknz->p)--;}
|
|
|
|
break;
|
2014-04-02 04:04:12 -07:00
|
|
|
case 57:
|
2014-04-13 21:56:45 -07:00
|
|
|
#line 553 "lib/eolian/eo_lexer.rl"
|
2014-03-29 21:07:19 -07:00
|
|
|
{ toknz->te = ( toknz->p);( toknz->p)--;{
|
|
|
|
INF(" }");
|
|
|
|
toknz->tmp.param = NULL;
|
|
|
|
toknz->current_nesting--;
|
|
|
|
if (toknz->tmp.prop)
|
2014-04-03 06:20:58 -07:00
|
|
|
{ toknz->cs = 319; goto _again;}
|
2014-03-29 21:07:19 -07:00
|
|
|
else if (toknz->tmp.meth)
|
2014-04-03 06:20:58 -07:00
|
|
|
{ toknz->cs = 332; goto _again;}
|
2014-03-29 21:07:19 -07:00
|
|
|
else
|
|
|
|
ABORT(toknz, "leaving tokenize_params but there is no property nor method pending");
|
|
|
|
}}
|
|
|
|
break;
|
2014-04-02 04:04:12 -07:00
|
|
|
case 58:
|
2014-04-13 21:56:45 -07:00
|
|
|
#line 410 "lib/eolian/eo_lexer.rl"
|
2014-03-29 21:07:19 -07:00
|
|
|
{ toknz->te = ( toknz->p);( toknz->p)--;{
|
|
|
|
DBG("error[%d]", toknz->cs);
|
|
|
|
char *s, *d;
|
|
|
|
char buf[BUFSIZE];
|
|
|
|
for (s = ( toknz->p), d = buf; (s <= toknz->pe); s++)
|
|
|
|
{
|
|
|
|
if ((*s == '\r') || (*s == '\n'))
|
|
|
|
break;
|
|
|
|
*d++ = *s;
|
|
|
|
}
|
|
|
|
*d = '\0';
|
|
|
|
ERR("error n:%d l:%d c:'%c': %s",
|
|
|
|
toknz->current_nesting, toknz->current_line, *( toknz->p), buf);
|
|
|
|
toknz->cs = eo_tokenizer_error;
|
|
|
|
{( toknz->p)++; goto _out; } /* necessary to stop scanners */
|
|
|
|
}}
|
|
|
|
break;
|
2014-04-02 04:04:12 -07:00
|
|
|
case 59:
|
2014-04-13 21:56:45 -07:00
|
|
|
#line 571 "lib/eolian/eo_lexer.rl"
|
2014-03-29 21:07:19 -07:00
|
|
|
{{( toknz->p) = (( toknz->te))-1;}}
|
|
|
|
break;
|
2014-04-02 04:04:12 -07:00
|
|
|
case 60:
|
2014-04-13 21:56:45 -07:00
|
|
|
#line 410 "lib/eolian/eo_lexer.rl"
|
2014-03-29 21:07:19 -07:00
|
|
|
{{( toknz->p) = (( toknz->te))-1;}{
|
|
|
|
DBG("error[%d]", toknz->cs);
|
|
|
|
char *s, *d;
|
|
|
|
char buf[BUFSIZE];
|
|
|
|
for (s = ( toknz->p), d = buf; (s <= toknz->pe); s++)
|
|
|
|
{
|
|
|
|
if ((*s == '\r') || (*s == '\n'))
|
|
|
|
break;
|
|
|
|
*d++ = *s;
|
|
|
|
}
|
|
|
|
*d = '\0';
|
|
|
|
ERR("error n:%d l:%d c:'%c': %s",
|
|
|
|
toknz->current_nesting, toknz->current_line, *( toknz->p), buf);
|
|
|
|
toknz->cs = eo_tokenizer_error;
|
|
|
|
{( toknz->p)++; goto _out; } /* necessary to stop scanners */
|
|
|
|
}}
|
|
|
|
break;
|
2014-04-02 04:04:12 -07:00
|
|
|
case 61:
|
2014-04-13 21:56:45 -07:00
|
|
|
#line 401 "lib/eolian/eo_lexer.rl"
|
2014-03-29 21:07:19 -07:00
|
|
|
{ toknz->te = ( toknz->p)+1;{
|
|
|
|
DBG("comment[%d] line%03d:%03d", toknz->cs,
|
|
|
|
toknz->saved.line, toknz->current_line);
|
|
|
|
}}
|
|
|
|
break;
|
2014-04-02 04:04:12 -07:00
|
|
|
case 62:
|
2014-04-13 21:56:45 -07:00
|
|
|
#line 578 "lib/eolian/eo_lexer.rl"
|
2014-03-29 21:07:19 -07:00
|
|
|
{ toknz->te = ( toknz->p)+1;{
|
|
|
|
INF(" get {");
|
|
|
|
toknz->tmp.accessor = _eo_tokenizer_accessor_get(toknz, GETTER);
|
|
|
|
toknz->current_nesting++;
|
2014-04-03 06:20:58 -07:00
|
|
|
{ toknz->cs = 303; goto _again;}
|
2014-03-29 21:07:19 -07:00
|
|
|
}}
|
|
|
|
break;
|
2014-04-02 04:04:12 -07:00
|
|
|
case 63:
|
2014-04-13 21:56:45 -07:00
|
|
|
#line 585 "lib/eolian/eo_lexer.rl"
|
2014-03-29 21:07:19 -07:00
|
|
|
{ toknz->te = ( toknz->p)+1;{
|
|
|
|
INF(" set {");
|
|
|
|
toknz->tmp.accessor = _eo_tokenizer_accessor_get(toknz, SETTER);
|
|
|
|
toknz->current_nesting++;
|
2014-04-03 06:20:58 -07:00
|
|
|
{ toknz->cs = 303; goto _again;}
|
2014-03-29 21:07:19 -07:00
|
|
|
}}
|
|
|
|
break;
|
2014-04-02 04:04:12 -07:00
|
|
|
case 64:
|
2014-04-13 21:56:45 -07:00
|
|
|
#line 592 "lib/eolian/eo_lexer.rl"
|
2014-03-29 21:07:19 -07:00
|
|
|
{ toknz->te = ( toknz->p)+1;{
|
|
|
|
INF(" keys {");
|
|
|
|
toknz->current_nesting++;
|
|
|
|
toknz->tmp.params = &(toknz->tmp.prop->keys);
|
2014-04-03 06:20:58 -07:00
|
|
|
{ toknz->cs = 312; goto _again;}
|
2014-03-29 21:07:19 -07:00
|
|
|
}}
|
|
|
|
break;
|
2014-04-02 04:04:12 -07:00
|
|
|
case 65:
|
2014-04-13 21:56:45 -07:00
|
|
|
#line 599 "lib/eolian/eo_lexer.rl"
|
2014-03-29 21:07:19 -07:00
|
|
|
{ toknz->te = ( toknz->p)+1;{
|
|
|
|
INF(" values {");
|
|
|
|
toknz->current_nesting++;
|
|
|
|
toknz->tmp.params = &(toknz->tmp.prop->values);
|
2014-04-03 06:20:58 -07:00
|
|
|
{ toknz->cs = 312; goto _again;}
|
2014-03-29 21:07:19 -07:00
|
|
|
}}
|
|
|
|
break;
|
2014-04-02 04:04:12 -07:00
|
|
|
case 66:
|
2014-04-13 21:56:45 -07:00
|
|
|
#line 606 "lib/eolian/eo_lexer.rl"
|
2014-03-29 21:07:19 -07:00
|
|
|
{ toknz->te = ( toknz->p)+1;{
|
|
|
|
if (!toknz->tmp.prop) ABORT(toknz, "No property!!!");
|
|
|
|
if (eina_list_count(toknz->tmp.prop->accessors) == 0)
|
|
|
|
WRN("property '%s' has no accessors.", toknz->tmp.prop->name);
|
|
|
|
INF(" }");
|
|
|
|
toknz->tmp.kls->properties = eina_list_append(toknz->tmp.kls->properties, toknz->tmp.prop);
|
|
|
|
toknz->tmp.prop = NULL;
|
|
|
|
toknz->current_nesting--;
|
2014-04-03 06:20:58 -07:00
|
|
|
{ toknz->cs = 327; goto _again;}
|
2014-03-29 21:07:19 -07:00
|
|
|
}}
|
|
|
|
break;
|
2014-04-02 04:04:12 -07:00
|
|
|
case 67:
|
2014-04-13 21:56:45 -07:00
|
|
|
#line 410 "lib/eolian/eo_lexer.rl"
|
2014-03-29 21:07:19 -07:00
|
|
|
{ toknz->te = ( toknz->p)+1;{
|
|
|
|
DBG("error[%d]", toknz->cs);
|
|
|
|
char *s, *d;
|
|
|
|
char buf[BUFSIZE];
|
|
|
|
for (s = ( toknz->p), d = buf; (s <= toknz->pe); s++)
|
|
|
|
{
|
|
|
|
if ((*s == '\r') || (*s == '\n'))
|
|
|
|
break;
|
|
|
|
*d++ = *s;
|
|
|
|
}
|
|
|
|
*d = '\0';
|
|
|
|
ERR("error n:%d l:%d c:'%c': %s",
|
|
|
|
toknz->current_nesting, toknz->current_line, *( toknz->p), buf);
|
|
|
|
toknz->cs = eo_tokenizer_error;
|
|
|
|
{( toknz->p)++; goto _out; } /* necessary to stop scanners */
|
|
|
|
}}
|
|
|
|
break;
|
2014-04-02 04:04:12 -07:00
|
|
|
case 68:
|
2014-04-03 06:20:58 -07:00
|
|
|
#line 623 "lib/eolian/eo_lexer.rl"
|
2014-03-29 21:07:19 -07:00
|
|
|
{ toknz->te = ( toknz->p);( toknz->p)--;}
|
|
|
|
break;
|
2014-04-02 04:04:12 -07:00
|
|
|
case 69:
|
2014-04-13 21:56:45 -07:00
|
|
|
#line 606 "lib/eolian/eo_lexer.rl"
|
2014-03-29 21:07:19 -07:00
|
|
|
{ toknz->te = ( toknz->p);( toknz->p)--;{
|
|
|
|
if (!toknz->tmp.prop) ABORT(toknz, "No property!!!");
|
|
|
|
if (eina_list_count(toknz->tmp.prop->accessors) == 0)
|
|
|
|
WRN("property '%s' has no accessors.", toknz->tmp.prop->name);
|
|
|
|
INF(" }");
|
|
|
|
toknz->tmp.kls->properties = eina_list_append(toknz->tmp.kls->properties, toknz->tmp.prop);
|
|
|
|
toknz->tmp.prop = NULL;
|
|
|
|
toknz->current_nesting--;
|
2014-04-03 06:20:58 -07:00
|
|
|
{ toknz->cs = 327; goto _again;}
|
2014-03-29 21:07:19 -07:00
|
|
|
}}
|
|
|
|
break;
|
2014-04-02 04:04:12 -07:00
|
|
|
case 70:
|
2014-04-13 21:56:45 -07:00
|
|
|
#line 410 "lib/eolian/eo_lexer.rl"
|
2014-03-29 21:07:19 -07:00
|
|
|
{ toknz->te = ( toknz->p);( toknz->p)--;{
|
|
|
|
DBG("error[%d]", toknz->cs);
|
|
|
|
char *s, *d;
|
|
|
|
char buf[BUFSIZE];
|
|
|
|
for (s = ( toknz->p), d = buf; (s <= toknz->pe); s++)
|
|
|
|
{
|
|
|
|
if ((*s == '\r') || (*s == '\n'))
|
|
|
|
break;
|
|
|
|
*d++ = *s;
|
|
|
|
}
|
|
|
|
*d = '\0';
|
|
|
|
ERR("error n:%d l:%d c:'%c': %s",
|
|
|
|
toknz->current_nesting, toknz->current_line, *( toknz->p), buf);
|
|
|
|
toknz->cs = eo_tokenizer_error;
|
|
|
|
{( toknz->p)++; goto _out; } /* necessary to stop scanners */
|
|
|
|
}}
|
|
|
|
break;
|
2014-04-02 04:04:12 -07:00
|
|
|
case 71:
|
2014-04-13 21:56:45 -07:00
|
|
|
#line 410 "lib/eolian/eo_lexer.rl"
|
2014-03-29 21:07:19 -07:00
|
|
|
{{( toknz->p) = (( toknz->te))-1;}{
|
|
|
|
DBG("error[%d]", toknz->cs);
|
|
|
|
char *s, *d;
|
|
|
|
char buf[BUFSIZE];
|
|
|
|
for (s = ( toknz->p), d = buf; (s <= toknz->pe); s++)
|
|
|
|
{
|
|
|
|
if ((*s == '\r') || (*s == '\n'))
|
|
|
|
break;
|
|
|
|
*d++ = *s;
|
|
|
|
}
|
|
|
|
*d = '\0';
|
|
|
|
ERR("error n:%d l:%d c:'%c': %s",
|
|
|
|
toknz->current_nesting, toknz->current_line, *( toknz->p), buf);
|
|
|
|
toknz->cs = eo_tokenizer_error;
|
|
|
|
{( toknz->p)++; goto _out; } /* necessary to stop scanners */
|
|
|
|
}}
|
|
|
|
break;
|
2014-04-02 04:04:12 -07:00
|
|
|
case 72:
|
2014-04-13 21:56:45 -07:00
|
|
|
#line 401 "lib/eolian/eo_lexer.rl"
|
2014-03-29 21:07:19 -07:00
|
|
|
{ toknz->te = ( toknz->p)+1;{
|
|
|
|
DBG("comment[%d] line%03d:%03d", toknz->cs,
|
|
|
|
toknz->saved.line, toknz->current_line);
|
|
|
|
}}
|
|
|
|
break;
|
2014-04-02 04:04:12 -07:00
|
|
|
case 73:
|
2014-04-03 06:20:58 -07:00
|
|
|
#line 635 "lib/eolian/eo_lexer.rl"
|
2014-03-29 21:07:19 -07:00
|
|
|
{ toknz->te = ( toknz->p)+1;{
|
|
|
|
if (!toknz->tmp.prop) ABORT(toknz, "No property!!!");
|
|
|
|
INF(" %s {", toknz->tmp.prop->name);
|
|
|
|
toknz->current_nesting++;
|
2014-04-03 06:20:58 -07:00
|
|
|
{ toknz->cs = 319; goto _again;}
|
2014-03-29 21:07:19 -07:00
|
|
|
}}
|
|
|
|
break;
|
2014-04-02 04:04:12 -07:00
|
|
|
case 74:
|
2014-04-03 06:20:58 -07:00
|
|
|
#line 648 "lib/eolian/eo_lexer.rl"
|
2014-03-29 21:07:19 -07:00
|
|
|
{ toknz->te = ( toknz->p)+1;{
|
|
|
|
INF(" }");
|
|
|
|
toknz->current_nesting--;
|
2014-04-03 06:20:58 -07:00
|
|
|
{ toknz->cs = 347; goto _again;}
|
2014-03-29 21:07:19 -07:00
|
|
|
}}
|
|
|
|
break;
|
2014-04-02 04:04:12 -07:00
|
|
|
case 75:
|
2014-04-13 21:56:45 -07:00
|
|
|
#line 410 "lib/eolian/eo_lexer.rl"
|
2014-03-29 21:07:19 -07:00
|
|
|
{ toknz->te = ( toknz->p)+1;{
|
|
|
|
DBG("error[%d]", toknz->cs);
|
|
|
|
char *s, *d;
|
|
|
|
char buf[BUFSIZE];
|
|
|
|
for (s = ( toknz->p), d = buf; (s <= toknz->pe); s++)
|
|
|
|
{
|
|
|
|
if ((*s == '\r') || (*s == '\n'))
|
|
|
|
break;
|
|
|
|
*d++ = *s;
|
|
|
|
}
|
|
|
|
*d = '\0';
|
|
|
|
ERR("error n:%d l:%d c:'%c': %s",
|
|
|
|
toknz->current_nesting, toknz->current_line, *( toknz->p), buf);
|
|
|
|
toknz->cs = eo_tokenizer_error;
|
|
|
|
{( toknz->p)++; goto _out; } /* necessary to stop scanners */
|
|
|
|
}}
|
|
|
|
break;
|
2014-04-02 04:04:12 -07:00
|
|
|
case 76:
|
2014-04-03 06:20:58 -07:00
|
|
|
#line 657 "lib/eolian/eo_lexer.rl"
|
2014-03-29 21:07:19 -07:00
|
|
|
{ toknz->te = ( toknz->p);( toknz->p)--;}
|
|
|
|
break;
|
2014-04-02 04:04:12 -07:00
|
|
|
case 77:
|
2014-04-03 06:20:58 -07:00
|
|
|
#line 648 "lib/eolian/eo_lexer.rl"
|
2014-03-29 21:07:19 -07:00
|
|
|
{ toknz->te = ( toknz->p);( toknz->p)--;{
|
|
|
|
INF(" }");
|
|
|
|
toknz->current_nesting--;
|
2014-04-03 06:20:58 -07:00
|
|
|
{ toknz->cs = 347; goto _again;}
|
2014-03-29 21:07:19 -07:00
|
|
|
}}
|
|
|
|
break;
|
2014-04-02 04:04:12 -07:00
|
|
|
case 78:
|
2014-04-13 21:56:45 -07:00
|
|
|
#line 410 "lib/eolian/eo_lexer.rl"
|
2014-03-29 21:07:19 -07:00
|
|
|
{ toknz->te = ( toknz->p);( toknz->p)--;{
|
|
|
|
DBG("error[%d]", toknz->cs);
|
|
|
|
char *s, *d;
|
|
|
|
char buf[BUFSIZE];
|
|
|
|
for (s = ( toknz->p), d = buf; (s <= toknz->pe); s++)
|
|
|
|
{
|
|
|
|
if ((*s == '\r') || (*s == '\n'))
|
|
|
|
break;
|
|
|
|
*d++ = *s;
|
|
|
|
}
|
|
|
|
*d = '\0';
|
|
|
|
ERR("error n:%d l:%d c:'%c': %s",
|
|
|
|
toknz->current_nesting, toknz->current_line, *( toknz->p), buf);
|
|
|
|
toknz->cs = eo_tokenizer_error;
|
|
|
|
{( toknz->p)++; goto _out; } /* necessary to stop scanners */
|
|
|
|
}}
|
|
|
|
break;
|
2014-04-02 04:04:12 -07:00
|
|
|
case 79:
|
2014-04-13 21:56:45 -07:00
|
|
|
#line 410 "lib/eolian/eo_lexer.rl"
|
2014-03-29 21:07:19 -07:00
|
|
|
{{( toknz->p) = (( toknz->te))-1;}{
|
|
|
|
DBG("error[%d]", toknz->cs);
|
|
|
|
char *s, *d;
|
|
|
|
char buf[BUFSIZE];
|
|
|
|
for (s = ( toknz->p), d = buf; (s <= toknz->pe); s++)
|
|
|
|
{
|
|
|
|
if ((*s == '\r') || (*s == '\n'))
|
|
|
|
break;
|
|
|
|
*d++ = *s;
|
|
|
|
}
|
|
|
|
*d = '\0';
|
|
|
|
ERR("error n:%d l:%d c:'%c': %s",
|
|
|
|
toknz->current_nesting, toknz->current_line, *( toknz->p), buf);
|
|
|
|
toknz->cs = eo_tokenizer_error;
|
|
|
|
{( toknz->p)++; goto _out; } /* necessary to stop scanners */
|
|
|
|
}}
|
|
|
|
break;
|
2014-04-02 04:04:12 -07:00
|
|
|
case 80:
|
2014-04-03 06:20:58 -07:00
|
|
|
#line 666 "lib/eolian/eo_lexer.rl"
|
2014-03-29 21:07:19 -07:00
|
|
|
{ toknz->te = ( toknz->p)+1;{
|
|
|
|
if (!toknz->tmp.meth) ABORT(toknz, "No method!!!");
|
|
|
|
if (toknz->tmp.meth->comment != NULL)
|
|
|
|
ABORT(toknz, "method has already a comment");
|
|
|
|
toknz->tmp.meth->comment = _eo_tokenizer_token_get(toknz, ( toknz->p)-1);
|
|
|
|
INF(" %s", toknz->tmp.meth->comment);
|
|
|
|
}}
|
|
|
|
break;
|
2014-04-02 04:04:12 -07:00
|
|
|
case 81:
|
2014-04-13 21:56:45 -07:00
|
|
|
#line 401 "lib/eolian/eo_lexer.rl"
|
2014-03-29 21:07:19 -07:00
|
|
|
{ toknz->te = ( toknz->p)+1;{
|
|
|
|
DBG("comment[%d] line%03d:%03d", toknz->cs,
|
|
|
|
toknz->saved.line, toknz->current_line);
|
|
|
|
}}
|
|
|
|
break;
|
2014-04-02 04:04:12 -07:00
|
|
|
case 82:
|
2014-04-03 06:20:58 -07:00
|
|
|
#line 674 "lib/eolian/eo_lexer.rl"
|
2014-03-29 21:07:19 -07:00
|
|
|
{ toknz->te = ( toknz->p)+1;{
|
|
|
|
if (!toknz->tmp.meth) ABORT(toknz, "No method!!!");
|
|
|
|
INF(" params {");
|
|
|
|
toknz->current_nesting++;
|
|
|
|
toknz->tmp.params = &(toknz->tmp.meth->params);
|
2014-04-03 06:20:58 -07:00
|
|
|
{ toknz->cs = 312; goto _again;}
|
2014-03-29 21:07:19 -07:00
|
|
|
}}
|
|
|
|
break;
|
2014-04-02 04:04:12 -07:00
|
|
|
case 83:
|
2014-04-13 21:56:45 -07:00
|
|
|
#line 748 "lib/eolian/eo_lexer.rl"
|
2014-03-29 21:07:19 -07:00
|
|
|
{ toknz->te = ( toknz->p)+1;}
|
|
|
|
break;
|
2014-04-02 04:04:12 -07:00
|
|
|
case 84:
|
2014-04-13 21:56:45 -07:00
|
|
|
#line 749 "lib/eolian/eo_lexer.rl"
|
2014-03-29 21:07:19 -07:00
|
|
|
{ toknz->te = ( toknz->p)+1;}
|
|
|
|
break;
|
2014-04-02 04:04:12 -07:00
|
|
|
case 85:
|
2014-04-03 06:20:58 -07:00
|
|
|
#line 709 "lib/eolian/eo_lexer.rl"
|
2014-03-29 21:07:19 -07:00
|
|
|
{ toknz->te = ( toknz->p)+1;{
|
|
|
|
Eina_List **l = NULL;
|
|
|
|
if (!toknz->tmp.meth) ABORT(toknz, "No method!!!");
|
|
|
|
INF(" }");
|
|
|
|
switch (toknz->current_methods_type) {
|
|
|
|
case METH_CONSTRUCTOR:
|
|
|
|
l = &toknz->tmp.kls->constructors;
|
|
|
|
break;
|
|
|
|
case METH_DESTRUCTOR:
|
|
|
|
l = &toknz->tmp.kls->destructors;
|
|
|
|
break;
|
|
|
|
case METH_REGULAR:
|
|
|
|
l = &toknz->tmp.kls->methods;
|
|
|
|
break;
|
|
|
|
default:
|
|
|
|
ABORT(toknz, "unknown method type %d", toknz->current_methods_type);
|
|
|
|
}
|
|
|
|
toknz->tmp.meth->type = toknz->current_methods_type;
|
|
|
|
*l = eina_list_append(*l, toknz->tmp.meth);
|
|
|
|
toknz->tmp.meth = NULL;
|
|
|
|
toknz->current_nesting--;
|
2014-04-03 06:20:58 -07:00
|
|
|
{ toknz->cs = 342; goto _again;}
|
2014-03-29 21:07:19 -07:00
|
|
|
}}
|
|
|
|
break;
|
2014-04-02 04:04:12 -07:00
|
|
|
case 86:
|
2014-04-13 21:56:45 -07:00
|
|
|
#line 410 "lib/eolian/eo_lexer.rl"
|
2014-03-29 21:07:19 -07:00
|
|
|
{ toknz->te = ( toknz->p)+1;{
|
|
|
|
DBG("error[%d]", toknz->cs);
|
|
|
|
char *s, *d;
|
|
|
|
char buf[BUFSIZE];
|
|
|
|
for (s = ( toknz->p), d = buf; (s <= toknz->pe); s++)
|
|
|
|
{
|
|
|
|
if ((*s == '\r') || (*s == '\n'))
|
|
|
|
break;
|
|
|
|
*d++ = *s;
|
|
|
|
}
|
|
|
|
*d = '\0';
|
|
|
|
ERR("error n:%d l:%d c:'%c': %s",
|
|
|
|
toknz->current_nesting, toknz->current_line, *( toknz->p), buf);
|
|
|
|
toknz->cs = eo_tokenizer_error;
|
|
|
|
{( toknz->p)++; goto _out; } /* necessary to stop scanners */
|
|
|
|
}}
|
|
|
|
break;
|
2014-04-02 04:04:12 -07:00
|
|
|
case 87:
|
2014-04-13 21:56:45 -07:00
|
|
|
#line 743 "lib/eolian/eo_lexer.rl"
|
2014-03-29 21:07:19 -07:00
|
|
|
{ toknz->te = ( toknz->p);( toknz->p)--;}
|
|
|
|
break;
|
2014-04-02 04:04:12 -07:00
|
|
|
case 88:
|
2014-04-13 21:56:45 -07:00
|
|
|
#line 747 "lib/eolian/eo_lexer.rl"
|
2014-03-29 21:07:19 -07:00
|
|
|
{ toknz->te = ( toknz->p);( toknz->p)--;}
|
|
|
|
break;
|
2014-04-02 04:04:12 -07:00
|
|
|
case 89:
|
2014-04-03 06:20:58 -07:00
|
|
|
#line 709 "lib/eolian/eo_lexer.rl"
|
2014-03-29 21:07:19 -07:00
|
|
|
{ toknz->te = ( toknz->p);( toknz->p)--;{
|
|
|
|
Eina_List **l = NULL;
|
|
|
|
if (!toknz->tmp.meth) ABORT(toknz, "No method!!!");
|
|
|
|
INF(" }");
|
|
|
|
switch (toknz->current_methods_type) {
|
|
|
|
case METH_CONSTRUCTOR:
|
|
|
|
l = &toknz->tmp.kls->constructors;
|
|
|
|
break;
|
|
|
|
case METH_DESTRUCTOR:
|
|
|
|
l = &toknz->tmp.kls->destructors;
|
|
|
|
break;
|
|
|
|
case METH_REGULAR:
|
|
|
|
l = &toknz->tmp.kls->methods;
|
|
|
|
break;
|
|
|
|
default:
|
|
|
|
ABORT(toknz, "unknown method type %d", toknz->current_methods_type);
|
|
|
|
}
|
|
|
|
toknz->tmp.meth->type = toknz->current_methods_type;
|
|
|
|
*l = eina_list_append(*l, toknz->tmp.meth);
|
|
|
|
toknz->tmp.meth = NULL;
|
|
|
|
toknz->current_nesting--;
|
2014-04-03 06:20:58 -07:00
|
|
|
{ toknz->cs = 342; goto _again;}
|
2014-03-29 21:07:19 -07:00
|
|
|
}}
|
|
|
|
break;
|
2014-04-02 04:04:12 -07:00
|
|
|
case 90:
|
2014-04-13 21:56:45 -07:00
|
|
|
#line 410 "lib/eolian/eo_lexer.rl"
|
2014-03-29 21:07:19 -07:00
|
|
|
{ toknz->te = ( toknz->p);( toknz->p)--;{
|
|
|
|
DBG("error[%d]", toknz->cs);
|
|
|
|
char *s, *d;
|
|
|
|
char buf[BUFSIZE];
|
|
|
|
for (s = ( toknz->p), d = buf; (s <= toknz->pe); s++)
|
|
|
|
{
|
|
|
|
if ((*s == '\r') || (*s == '\n'))
|
|
|
|
break;
|
|
|
|
*d++ = *s;
|
|
|
|
}
|
|
|
|
*d = '\0';
|
|
|
|
ERR("error n:%d l:%d c:'%c': %s",
|
|
|
|
toknz->current_nesting, toknz->current_line, *( toknz->p), buf);
|
|
|
|
toknz->cs = eo_tokenizer_error;
|
|
|
|
{( toknz->p)++; goto _out; } /* necessary to stop scanners */
|
|
|
|
}}
|
|
|
|
break;
|
2014-04-02 04:04:12 -07:00
|
|
|
case 91:
|
2014-04-13 21:56:45 -07:00
|
|
|
#line 747 "lib/eolian/eo_lexer.rl"
|
2014-03-29 21:07:19 -07:00
|
|
|
{{( toknz->p) = (( toknz->te))-1;}}
|
|
|
|
break;
|
2014-04-02 04:04:12 -07:00
|
|
|
case 92:
|
2014-04-13 21:56:45 -07:00
|
|
|
#line 410 "lib/eolian/eo_lexer.rl"
|
2014-03-29 21:07:19 -07:00
|
|
|
{{( toknz->p) = (( toknz->te))-1;}{
|
|
|
|
DBG("error[%d]", toknz->cs);
|
|
|
|
char *s, *d;
|
|
|
|
char buf[BUFSIZE];
|
|
|
|
for (s = ( toknz->p), d = buf; (s <= toknz->pe); s++)
|
|
|
|
{
|
|
|
|
if ((*s == '\r') || (*s == '\n'))
|
|
|
|
break;
|
|
|
|
*d++ = *s;
|
|
|
|
}
|
|
|
|
*d = '\0';
|
|
|
|
ERR("error n:%d l:%d c:'%c': %s",
|
|
|
|
toknz->current_nesting, toknz->current_line, *( toknz->p), buf);
|
|
|
|
toknz->cs = eo_tokenizer_error;
|
|
|
|
{( toknz->p)++; goto _out; } /* necessary to stop scanners */
|
|
|
|
}}
|
|
|
|
break;
|
2014-04-02 04:04:12 -07:00
|
|
|
case 93:
|
2014-04-13 21:56:45 -07:00
|
|
|
#line 401 "lib/eolian/eo_lexer.rl"
|
2014-03-29 21:07:19 -07:00
|
|
|
{ toknz->te = ( toknz->p)+1;{
|
|
|
|
DBG("comment[%d] line%03d:%03d", toknz->cs,
|
|
|
|
toknz->saved.line, toknz->current_line);
|
|
|
|
}}
|
|
|
|
break;
|
2014-04-02 04:04:12 -07:00
|
|
|
case 94:
|
2014-04-13 21:56:45 -07:00
|
|
|
#line 756 "lib/eolian/eo_lexer.rl"
|
2014-03-29 21:07:19 -07:00
|
|
|
{ toknz->te = ( toknz->p)+1;{
|
|
|
|
if (!toknz->tmp.meth) ABORT(toknz, "No method!!!");
|
|
|
|
INF(" %s {", toknz->tmp.meth->name);
|
|
|
|
toknz->current_nesting++;
|
2014-04-03 06:20:58 -07:00
|
|
|
{ toknz->cs = 332; goto _again;}
|
2014-03-29 21:07:19 -07:00
|
|
|
}}
|
|
|
|
break;
|
2014-04-02 04:04:12 -07:00
|
|
|
case 95:
|
2014-04-13 21:56:45 -07:00
|
|
|
#line 769 "lib/eolian/eo_lexer.rl"
|
2014-03-29 21:07:19 -07:00
|
|
|
{ toknz->te = ( toknz->p)+1;{
|
|
|
|
INF(" }");
|
|
|
|
toknz->current_methods_type = METH_TYPE_LAST;
|
|
|
|
toknz->current_nesting--;
|
2014-04-03 06:20:58 -07:00
|
|
|
{ toknz->cs = 347; goto _again;}
|
2014-03-29 21:07:19 -07:00
|
|
|
}}
|
|
|
|
break;
|
2014-04-02 04:04:12 -07:00
|
|
|
case 96:
|
2014-04-13 21:56:45 -07:00
|
|
|
#line 410 "lib/eolian/eo_lexer.rl"
|
2014-03-29 21:07:19 -07:00
|
|
|
{ toknz->te = ( toknz->p)+1;{
|
|
|
|
DBG("error[%d]", toknz->cs);
|
|
|
|
char *s, *d;
|
|
|
|
char buf[BUFSIZE];
|
|
|
|
for (s = ( toknz->p), d = buf; (s <= toknz->pe); s++)
|
|
|
|
{
|
|
|
|
if ((*s == '\r') || (*s == '\n'))
|
|
|
|
break;
|
|
|
|
*d++ = *s;
|
|
|
|
}
|
|
|
|
*d = '\0';
|
|
|
|
ERR("error n:%d l:%d c:'%c': %s",
|
|
|
|
toknz->current_nesting, toknz->current_line, *( toknz->p), buf);
|
|
|
|
toknz->cs = eo_tokenizer_error;
|
|
|
|
{( toknz->p)++; goto _out; } /* necessary to stop scanners */
|
|
|
|
}}
|
|
|
|
break;
|
2014-04-02 04:04:12 -07:00
|
|
|
case 97:
|
2014-04-13 21:56:45 -07:00
|
|
|
#line 779 "lib/eolian/eo_lexer.rl"
|
2014-03-29 21:07:19 -07:00
|
|
|
{ toknz->te = ( toknz->p);( toknz->p)--;}
|
|
|
|
break;
|
2014-04-02 04:04:12 -07:00
|
|
|
case 98:
|
2014-04-13 21:56:45 -07:00
|
|
|
#line 769 "lib/eolian/eo_lexer.rl"
|
2014-03-29 21:07:19 -07:00
|
|
|
{ toknz->te = ( toknz->p);( toknz->p)--;{
|
|
|
|
INF(" }");
|
|
|
|
toknz->current_methods_type = METH_TYPE_LAST;
|
|
|
|
toknz->current_nesting--;
|
2014-04-03 06:20:58 -07:00
|
|
|
{ toknz->cs = 347; goto _again;}
|
2014-03-29 21:07:19 -07:00
|
|
|
}}
|
|
|
|
break;
|
2014-04-02 04:04:12 -07:00
|
|
|
case 99:
|
2014-04-13 21:56:45 -07:00
|
|
|
#line 410 "lib/eolian/eo_lexer.rl"
|
2014-03-29 21:07:19 -07:00
|
|
|
{ toknz->te = ( toknz->p);( toknz->p)--;{
|
|
|
|
DBG("error[%d]", toknz->cs);
|
|
|
|
char *s, *d;
|
|
|
|
char buf[BUFSIZE];
|
|
|
|
for (s = ( toknz->p), d = buf; (s <= toknz->pe); s++)
|
|
|
|
{
|
|
|
|
if ((*s == '\r') || (*s == '\n'))
|
|
|
|
break;
|
|
|
|
*d++ = *s;
|
|
|
|
}
|
|
|
|
*d = '\0';
|
|
|
|
ERR("error n:%d l:%d c:'%c': %s",
|
|
|
|
toknz->current_nesting, toknz->current_line, *( toknz->p), buf);
|
|
|
|
toknz->cs = eo_tokenizer_error;
|
|
|
|
{( toknz->p)++; goto _out; } /* necessary to stop scanners */
|
|
|
|
}}
|
|
|
|
break;
|
2014-04-02 04:04:12 -07:00
|
|
|
case 100:
|
2014-04-13 21:56:45 -07:00
|
|
|
#line 410 "lib/eolian/eo_lexer.rl"
|
2014-03-29 21:07:19 -07:00
|
|
|
{{( toknz->p) = (( toknz->te))-1;}{
|
|
|
|
DBG("error[%d]", toknz->cs);
|
|
|
|
char *s, *d;
|
|
|
|
char buf[BUFSIZE];
|
|
|
|
for (s = ( toknz->p), d = buf; (s <= toknz->pe); s++)
|
|
|
|
{
|
|
|
|
if ((*s == '\r') || (*s == '\n'))
|
|
|
|
break;
|
|
|
|
*d++ = *s;
|
|
|
|
}
|
|
|
|
*d = '\0';
|
|
|
|
ERR("error n:%d l:%d c:'%c': %s",
|
|
|
|
toknz->current_nesting, toknz->current_line, *( toknz->p), buf);
|
|
|
|
toknz->cs = eo_tokenizer_error;
|
|
|
|
{( toknz->p)++; goto _out; } /* necessary to stop scanners */
|
|
|
|
}}
|
|
|
|
break;
|
2014-04-02 04:04:12 -07:00
|
|
|
case 101:
|
2014-04-13 21:56:45 -07:00
|
|
|
#line 788 "lib/eolian/eo_lexer.rl"
|
2014-03-29 21:07:19 -07:00
|
|
|
{ toknz->te = ( toknz->p)+1;{
|
|
|
|
if (!toknz->tmp.kls) ABORT(toknz, "No class!!!");
|
|
|
|
if (toknz->tmp.kls->comment != NULL)
|
|
|
|
ABORT(toknz, "class %s has already a comment", toknz->tmp.kls->name);
|
|
|
|
toknz->tmp.kls->comment = _eo_tokenizer_token_get(toknz, ( toknz->p)-1);
|
|
|
|
}}
|
|
|
|
break;
|
2014-04-02 04:04:12 -07:00
|
|
|
case 102:
|
2014-04-13 21:56:45 -07:00
|
|
|
#line 401 "lib/eolian/eo_lexer.rl"
|
2014-03-29 21:07:19 -07:00
|
|
|
{ toknz->te = ( toknz->p)+1;{
|
|
|
|
DBG("comment[%d] line%03d:%03d", toknz->cs,
|
|
|
|
toknz->saved.line, toknz->current_line);
|
|
|
|
}}
|
|
|
|
break;
|
2014-04-02 04:04:12 -07:00
|
|
|
case 103:
|
2014-04-13 21:56:45 -07:00
|
|
|
#line 806 "lib/eolian/eo_lexer.rl"
|
2014-03-29 21:07:19 -07:00
|
|
|
{ toknz->te = ( toknz->p)+1;{
|
|
|
|
}}
|
|
|
|
break;
|
2014-04-02 04:04:12 -07:00
|
|
|
case 104:
|
2014-04-13 21:56:45 -07:00
|
|
|
#line 809 "lib/eolian/eo_lexer.rl"
|
2014-03-29 21:07:19 -07:00
|
|
|
{ toknz->te = ( toknz->p)+1;{
|
|
|
|
}}
|
|
|
|
break;
|
2014-04-02 04:04:12 -07:00
|
|
|
case 105:
|
2014-04-13 21:56:45 -07:00
|
|
|
#line 812 "lib/eolian/eo_lexer.rl"
|
2014-03-29 21:07:19 -07:00
|
|
|
{ toknz->te = ( toknz->p)+1;{
|
|
|
|
INF(" constructors {");
|
|
|
|
toknz->current_methods_type = METH_CONSTRUCTOR;
|
|
|
|
toknz->current_nesting++;
|
2014-04-03 06:20:58 -07:00
|
|
|
{ toknz->cs = 342; goto _again;}
|
2014-03-29 21:07:19 -07:00
|
|
|
}}
|
|
|
|
break;
|
2014-04-02 04:04:12 -07:00
|
|
|
case 106:
|
2014-04-13 21:56:45 -07:00
|
|
|
#line 819 "lib/eolian/eo_lexer.rl"
|
2014-03-29 21:07:19 -07:00
|
|
|
{ toknz->te = ( toknz->p)+1;{
|
|
|
|
INF(" destructors {");
|
|
|
|
toknz->current_methods_type = METH_DESTRUCTOR;
|
|
|
|
toknz->current_nesting++;
|
2014-04-03 06:20:58 -07:00
|
|
|
{ toknz->cs = 342; goto _again;}
|
2014-03-29 21:07:19 -07:00
|
|
|
}}
|
|
|
|
break;
|
2014-04-02 04:04:12 -07:00
|
|
|
case 107:
|
2014-04-13 21:56:45 -07:00
|
|
|
#line 826 "lib/eolian/eo_lexer.rl"
|
2014-03-29 21:07:19 -07:00
|
|
|
{ toknz->te = ( toknz->p)+1;{
|
|
|
|
INF(" properties {");
|
|
|
|
toknz->current_nesting++;
|
2014-04-03 06:20:58 -07:00
|
|
|
{ toknz->cs = 327; goto _again;}
|
2014-03-29 21:07:19 -07:00
|
|
|
}}
|
|
|
|
break;
|
2014-04-02 04:04:12 -07:00
|
|
|
case 108:
|
2014-04-13 21:56:45 -07:00
|
|
|
#line 832 "lib/eolian/eo_lexer.rl"
|
2014-03-29 21:07:19 -07:00
|
|
|
{ toknz->te = ( toknz->p)+1;{
|
|
|
|
INF(" begin methods");
|
|
|
|
toknz->current_methods_type = METH_REGULAR;
|
|
|
|
toknz->current_nesting++;
|
2014-04-03 06:20:58 -07:00
|
|
|
{ toknz->cs = 342; goto _again;}
|
2014-03-29 21:07:19 -07:00
|
|
|
}}
|
|
|
|
break;
|
2014-04-02 04:04:12 -07:00
|
|
|
case 109:
|
2014-04-13 21:56:45 -07:00
|
|
|
#line 839 "lib/eolian/eo_lexer.rl"
|
2014-03-29 21:07:19 -07:00
|
|
|
{ toknz->te = ( toknz->p)+1;{
|
|
|
|
if (!toknz->tmp.kls) ABORT(toknz, "No class!!!");
|
|
|
|
INF("end class: %s", toknz->tmp.kls->name);
|
|
|
|
toknz->classes = eina_list_append(toknz->classes, toknz->tmp.kls);
|
|
|
|
toknz->tmp.kls = NULL;
|
|
|
|
toknz->current_nesting--;
|
2014-04-03 06:20:58 -07:00
|
|
|
{ toknz->cs = 296; goto _again;}
|
2014-03-29 21:07:19 -07:00
|
|
|
}}
|
|
|
|
break;
|
2014-04-02 04:04:12 -07:00
|
|
|
case 110:
|
2014-04-13 21:56:45 -07:00
|
|
|
#line 410 "lib/eolian/eo_lexer.rl"
|
2014-03-29 21:07:19 -07:00
|
|
|
{ toknz->te = ( toknz->p)+1;{
|
|
|
|
DBG("error[%d]", toknz->cs);
|
|
|
|
char *s, *d;
|
|
|
|
char buf[BUFSIZE];
|
|
|
|
for (s = ( toknz->p), d = buf; (s <= toknz->pe); s++)
|
|
|
|
{
|
|
|
|
if ((*s == '\r') || (*s == '\n'))
|
|
|
|
break;
|
|
|
|
*d++ = *s;
|
|
|
|
}
|
|
|
|
*d = '\0';
|
|
|
|
ERR("error n:%d l:%d c:'%c': %s",
|
|
|
|
toknz->current_nesting, toknz->current_line, *( toknz->p), buf);
|
|
|
|
toknz->cs = eo_tokenizer_error;
|
|
|
|
{( toknz->p)++; goto _out; } /* necessary to stop scanners */
|
|
|
|
}}
|
|
|
|
break;
|
|
|
|
case 111:
|
2014-04-13 21:56:45 -07:00
|
|
|
#line 994 "lib/eolian/eo_lexer.rl"
|
2014-03-29 21:07:19 -07:00
|
|
|
{ toknz->te = ( toknz->p);( toknz->p)--;}
|
|
|
|
break;
|
|
|
|
case 112:
|
2014-04-13 21:56:45 -07:00
|
|
|
#line 997 "lib/eolian/eo_lexer.rl"
|
2014-03-29 21:07:19 -07:00
|
|
|
{ toknz->te = ( toknz->p);( toknz->p)--;}
|
|
|
|
break;
|
|
|
|
case 113:
|
2014-04-13 21:56:45 -07:00
|
|
|
#line 998 "lib/eolian/eo_lexer.rl"
|
2014-03-29 21:07:19 -07:00
|
|
|
{ toknz->te = ( toknz->p);( toknz->p)--;}
|
|
|
|
break;
|
|
|
|
case 114:
|
2014-04-13 21:56:45 -07:00
|
|
|
#line 999 "lib/eolian/eo_lexer.rl"
|
2014-04-02 04:04:12 -07:00
|
|
|
{ toknz->te = ( toknz->p);( toknz->p)--;}
|
|
|
|
break;
|
|
|
|
case 115:
|
2014-04-13 21:56:45 -07:00
|
|
|
#line 806 "lib/eolian/eo_lexer.rl"
|
2014-03-29 21:07:19 -07:00
|
|
|
{ toknz->te = ( toknz->p);( toknz->p)--;{
|
|
|
|
}}
|
|
|
|
break;
|
2014-04-02 04:04:12 -07:00
|
|
|
case 116:
|
2014-04-13 21:56:45 -07:00
|
|
|
#line 809 "lib/eolian/eo_lexer.rl"
|
2014-03-29 21:07:19 -07:00
|
|
|
{ toknz->te = ( toknz->p);( toknz->p)--;{
|
|
|
|
}}
|
|
|
|
break;
|
2014-04-02 04:04:12 -07:00
|
|
|
case 117:
|
2014-04-13 21:56:45 -07:00
|
|
|
#line 839 "lib/eolian/eo_lexer.rl"
|
2014-03-29 21:07:19 -07:00
|
|
|
{ toknz->te = ( toknz->p);( toknz->p)--;{
|
|
|
|
if (!toknz->tmp.kls) ABORT(toknz, "No class!!!");
|
|
|
|
INF("end class: %s", toknz->tmp.kls->name);
|
|
|
|
toknz->classes = eina_list_append(toknz->classes, toknz->tmp.kls);
|
|
|
|
toknz->tmp.kls = NULL;
|
|
|
|
toknz->current_nesting--;
|
2014-04-03 06:20:58 -07:00
|
|
|
{ toknz->cs = 296; goto _again;}
|
2014-03-29 21:07:19 -07:00
|
|
|
}}
|
|
|
|
break;
|
2014-04-02 04:04:12 -07:00
|
|
|
case 118:
|
2014-04-13 21:56:45 -07:00
|
|
|
#line 410 "lib/eolian/eo_lexer.rl"
|
2014-03-29 21:07:19 -07:00
|
|
|
{ toknz->te = ( toknz->p);( toknz->p)--;{
|
|
|
|
DBG("error[%d]", toknz->cs);
|
|
|
|
char *s, *d;
|
|
|
|
char buf[BUFSIZE];
|
|
|
|
for (s = ( toknz->p), d = buf; (s <= toknz->pe); s++)
|
|
|
|
{
|
|
|
|
if ((*s == '\r') || (*s == '\n'))
|
|
|
|
break;
|
|
|
|
*d++ = *s;
|
|
|
|
}
|
|
|
|
*d = '\0';
|
|
|
|
ERR("error n:%d l:%d c:'%c': %s",
|
|
|
|
toknz->current_nesting, toknz->current_line, *( toknz->p), buf);
|
|
|
|
toknz->cs = eo_tokenizer_error;
|
|
|
|
{( toknz->p)++; goto _out; } /* necessary to stop scanners */
|
|
|
|
}}
|
|
|
|
break;
|
2014-04-02 04:04:12 -07:00
|
|
|
case 119:
|
2014-04-13 21:56:45 -07:00
|
|
|
#line 410 "lib/eolian/eo_lexer.rl"
|
2014-03-29 21:07:19 -07:00
|
|
|
{{( toknz->p) = (( toknz->te))-1;}{
|
|
|
|
DBG("error[%d]", toknz->cs);
|
|
|
|
char *s, *d;
|
|
|
|
char buf[BUFSIZE];
|
|
|
|
for (s = ( toknz->p), d = buf; (s <= toknz->pe); s++)
|
|
|
|
{
|
|
|
|
if ((*s == '\r') || (*s == '\n'))
|
|
|
|
break;
|
|
|
|
*d++ = *s;
|
|
|
|
}
|
|
|
|
*d = '\0';
|
|
|
|
ERR("error n:%d l:%d c:'%c': %s",
|
|
|
|
toknz->current_nesting, toknz->current_line, *( toknz->p), buf);
|
|
|
|
toknz->cs = eo_tokenizer_error;
|
|
|
|
{( toknz->p)++; goto _out; } /* necessary to stop scanners */
|
|
|
|
}}
|
|
|
|
break;
|
2014-04-02 04:04:12 -07:00
|
|
|
case 120:
|
2014-04-13 21:56:45 -07:00
|
|
|
#line 401 "lib/eolian/eo_lexer.rl"
|
2014-03-29 21:07:19 -07:00
|
|
|
{ toknz->te = ( toknz->p)+1;{
|
|
|
|
DBG("comment[%d] line%03d:%03d", toknz->cs,
|
|
|
|
toknz->saved.line, toknz->current_line);
|
|
|
|
}}
|
|
|
|
break;
|
2014-04-02 04:04:12 -07:00
|
|
|
case 121:
|
2014-04-13 21:56:45 -07:00
|
|
|
#line 1012 "lib/eolian/eo_lexer.rl"
|
2014-03-29 21:07:19 -07:00
|
|
|
{ toknz->te = ( toknz->p)+1;{
|
|
|
|
if (!toknz->tmp.kls) ABORT(toknz, "No class!!!");
|
|
|
|
INF("begin class: %s", toknz->tmp.kls->name);
|
|
|
|
toknz->current_nesting++;
|
2014-04-03 06:20:58 -07:00
|
|
|
{ toknz->cs = 347; goto _again;}
|
2014-03-29 21:07:19 -07:00
|
|
|
}}
|
|
|
|
break;
|
2014-04-02 04:04:12 -07:00
|
|
|
case 122:
|
2014-04-13 21:56:45 -07:00
|
|
|
#line 410 "lib/eolian/eo_lexer.rl"
|
2014-03-29 21:07:19 -07:00
|
|
|
{ toknz->te = ( toknz->p)+1;{
|
|
|
|
DBG("error[%d]", toknz->cs);
|
|
|
|
char *s, *d;
|
|
|
|
char buf[BUFSIZE];
|
|
|
|
for (s = ( toknz->p), d = buf; (s <= toknz->pe); s++)
|
|
|
|
{
|
|
|
|
if ((*s == '\r') || (*s == '\n'))
|
|
|
|
break;
|
|
|
|
*d++ = *s;
|
|
|
|
}
|
|
|
|
*d = '\0';
|
|
|
|
ERR("error n:%d l:%d c:'%c': %s",
|
|
|
|
toknz->current_nesting, toknz->current_line, *( toknz->p), buf);
|
|
|
|
toknz->cs = eo_tokenizer_error;
|
|
|
|
{( toknz->p)++; goto _out; } /* necessary to stop scanners */
|
|
|
|
}}
|
|
|
|
break;
|
2014-04-02 04:04:12 -07:00
|
|
|
case 123:
|
2014-04-13 21:56:45 -07:00
|
|
|
#line 1047 "lib/eolian/eo_lexer.rl"
|
2014-03-29 21:07:19 -07:00
|
|
|
{ toknz->te = ( toknz->p);( toknz->p)--;}
|
|
|
|
break;
|
2014-04-02 04:04:12 -07:00
|
|
|
case 124:
|
2014-04-13 21:56:45 -07:00
|
|
|
#line 410 "lib/eolian/eo_lexer.rl"
|
2014-03-29 21:07:19 -07:00
|
|
|
{ toknz->te = ( toknz->p);( toknz->p)--;{
|
|
|
|
DBG("error[%d]", toknz->cs);
|
|
|
|
char *s, *d;
|
|
|
|
char buf[BUFSIZE];
|
|
|
|
for (s = ( toknz->p), d = buf; (s <= toknz->pe); s++)
|
|
|
|
{
|
|
|
|
if ((*s == '\r') || (*s == '\n'))
|
|
|
|
break;
|
|
|
|
*d++ = *s;
|
|
|
|
}
|
|
|
|
*d = '\0';
|
|
|
|
ERR("error n:%d l:%d c:'%c': %s",
|
|
|
|
toknz->current_nesting, toknz->current_line, *( toknz->p), buf);
|
|
|
|
toknz->cs = eo_tokenizer_error;
|
|
|
|
{( toknz->p)++; goto _out; } /* necessary to stop scanners */
|
|
|
|
}}
|
|
|
|
break;
|
2014-04-02 04:04:12 -07:00
|
|
|
case 125:
|
2014-04-13 21:56:45 -07:00
|
|
|
#line 410 "lib/eolian/eo_lexer.rl"
|
2014-03-29 21:07:19 -07:00
|
|
|
{{( toknz->p) = (( toknz->te))-1;}{
|
|
|
|
DBG("error[%d]", toknz->cs);
|
|
|
|
char *s, *d;
|
|
|
|
char buf[BUFSIZE];
|
|
|
|
for (s = ( toknz->p), d = buf; (s <= toknz->pe); s++)
|
|
|
|
{
|
|
|
|
if ((*s == '\r') || (*s == '\n'))
|
|
|
|
break;
|
|
|
|
*d++ = *s;
|
|
|
|
}
|
|
|
|
*d = '\0';
|
|
|
|
ERR("error n:%d l:%d c:'%c': %s",
|
|
|
|
toknz->current_nesting, toknz->current_line, *( toknz->p), buf);
|
|
|
|
toknz->cs = eo_tokenizer_error;
|
|
|
|
{( toknz->p)++; goto _out; } /* necessary to stop scanners */
|
|
|
|
}}
|
|
|
|
break;
|
2014-04-13 21:56:45 -07:00
|
|
|
#line 4145 "lib/eolian/eo_lexer.c"
|
2014-03-29 21:07:19 -07:00
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
_again:
|
|
|
|
_acts = _eo_tokenizer_actions + _eo_tokenizer_to_state_actions[ toknz->cs];
|
|
|
|
_nacts = (unsigned int) *_acts++;
|
|
|
|
while ( _nacts-- > 0 ) {
|
|
|
|
switch ( *_acts++ ) {
|
2014-04-02 04:04:12 -07:00
|
|
|
case 37:
|
2014-03-29 21:07:19 -07:00
|
|
|
#line 1 "NONE"
|
|
|
|
{ toknz->ts = 0;}
|
|
|
|
break;
|
2014-04-13 21:56:45 -07:00
|
|
|
#line 4158 "lib/eolian/eo_lexer.c"
|
2014-03-29 21:07:19 -07:00
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
if ( ++( toknz->p) != ( toknz->pe) )
|
|
|
|
goto _resume;
|
|
|
|
_test_eof: {}
|
|
|
|
if ( ( toknz->p) == ( toknz->eof) )
|
|
|
|
{
|
|
|
|
if ( _eo_tokenizer_eof_trans[ toknz->cs] > 0 ) {
|
|
|
|
_trans = _eo_tokenizer_eof_trans[ toknz->cs] - 1;
|
|
|
|
goto _eof_trans;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
_out: {}
|
|
|
|
}
|
|
|
|
|
2014-04-13 21:56:45 -07:00
|
|
|
#line 1156 "lib/eolian/eo_lexer.rl"
|
2014-03-29 21:07:19 -07:00
|
|
|
|
|
|
|
if ( toknz->cs ==
|
2014-04-13 21:56:45 -07:00
|
|
|
#line 4179 "lib/eolian/eo_lexer.c"
|
2014-03-29 21:07:19 -07:00
|
|
|
-1
|
2014-04-13 21:56:45 -07:00
|
|
|
#line 1157 "lib/eolian/eo_lexer.rl"
|
2014-03-29 21:07:19 -07:00
|
|
|
)
|
|
|
|
{
|
|
|
|
ERR("%s: wrong termination", source);
|
|
|
|
ret = EINA_FALSE;
|
|
|
|
}
|
|
|
|
|
|
|
|
return ret;
|
|
|
|
}
|
|
|
|
|
|
|
|
Eo_Tokenizer*
|
|
|
|
eo_tokenizer_get(void)
|
|
|
|
{
|
|
|
|
Eo_Tokenizer *toknz = calloc(1, sizeof(Eo_Tokenizer));
|
|
|
|
if (!toknz) return NULL;
|
|
|
|
|
|
|
|
toknz->ts = NULL;
|
|
|
|
toknz->te = NULL;
|
|
|
|
/* toknz->top = 0; */
|
|
|
|
toknz->source = NULL;
|
|
|
|
toknz->max_nesting = 10;
|
|
|
|
toknz->current_line = 1;
|
|
|
|
toknz->current_nesting = 0;
|
|
|
|
toknz->current_methods_type = METH_TYPE_LAST;
|
|
|
|
toknz->saved.tok = NULL;
|
|
|
|
toknz->saved.line = 0;
|
|
|
|
toknz->classes = NULL;
|
|
|
|
|
|
|
|
return toknz;
|
|
|
|
}
|
|
|
|
|
|
|
|
static char *_accessor_type_str[ACCESSOR_TYPE_LAST] = { "setter", "getter" };
|
|
|
|
static char *_param_way_str[PARAM_WAY_LAST] = { "IN", "OUT", "INOUT" };
|
|
|
|
|
|
|
|
void
|
|
|
|
eo_tokenizer_dump(Eo_Tokenizer *toknz)
|
|
|
|
{
|
|
|
|
const char *s;
|
|
|
|
Eina_List *k, *l, *m;
|
|
|
|
|
|
|
|
Eo_Class_Def *kls;
|
|
|
|
Eo_Property_Def *prop;
|
|
|
|
Eo_Method_Def *meth;
|
|
|
|
Eo_Param_Def *param;
|
|
|
|
Eo_Accessor_Def *accessor;
|
|
|
|
Eo_Event_Def *sgn;
|
|
|
|
/* Eo_Ret_Def *ret; */
|
|
|
|
|
|
|
|
EINA_LIST_FOREACH(toknz->classes, k, kls)
|
|
|
|
{
|
|
|
|
printf("Class: %s (%s)\n",
|
|
|
|
kls->name, (kls->comment ? kls->comment : "-"));
|
|
|
|
printf(" inherits from :");
|
|
|
|
EINA_LIST_FOREACH(kls->inherits, l, s)
|
|
|
|
printf(" %s", s);
|
|
|
|
printf("\n");
|
|
|
|
printf(" implements:");
|
|
|
|
EINA_LIST_FOREACH(kls->implements, l, s)
|
|
|
|
printf(" %s", s);
|
|
|
|
printf("\n");
|
|
|
|
printf(" events:\n");
|
|
|
|
EINA_LIST_FOREACH(kls->events, l, sgn)
|
2014-04-02 04:04:12 -07:00
|
|
|
printf(" %s <%s> (%s)\n", sgn->name, sgn->type, sgn->comment);
|
2014-03-29 21:07:19 -07:00
|
|
|
|
|
|
|
EINA_LIST_FOREACH(kls->constructors, l, meth)
|
|
|
|
{
|
|
|
|
printf(" constructors: %s\n", meth->name);
|
|
|
|
if (meth->ret)
|
|
|
|
printf(" return: %s (%s)\n", meth->ret->type, meth->ret->comment);
|
|
|
|
printf(" legacy : %s\n", meth->legacy);
|
|
|
|
EINA_LIST_FOREACH(meth->params, m, param)
|
|
|
|
{
|
|
|
|
printf(" param: %s %s : %s (%s)\n",
|
|
|
|
_param_way_str[param->way], param->name,
|
|
|
|
param->type, param->comment);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
EINA_LIST_FOREACH(kls->destructors, l, meth)
|
|
|
|
{
|
|
|
|
printf(" destructors: %s\n", meth->name);
|
|
|
|
if (meth->ret)
|
|
|
|
printf(" return: %s (%s)\n", meth->ret->type, meth->ret->comment);
|
|
|
|
printf(" legacy : %s\n", meth->legacy);
|
|
|
|
EINA_LIST_FOREACH(meth->params, m, param)
|
|
|
|
{
|
|
|
|
printf(" param: %s %s : %s (%s)\n",
|
|
|
|
_param_way_str[param->way], param->name,
|
|
|
|
param->type, param->comment);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
EINA_LIST_FOREACH(kls->properties, l, prop)
|
|
|
|
{
|
|
|
|
printf(" property: %s\n", prop->name);
|
|
|
|
EINA_LIST_FOREACH(prop->keys, m, param)
|
|
|
|
{
|
|
|
|
printf(" key: %s : %s (%s)\n",
|
|
|
|
param->name, param->type, param->comment);
|
|
|
|
}
|
|
|
|
EINA_LIST_FOREACH(prop->values, m, param)
|
|
|
|
{
|
|
|
|
printf(" value: %s : %s (%s)\n",
|
|
|
|
param->name, param->type, param->comment);
|
|
|
|
}
|
|
|
|
EINA_LIST_FOREACH(prop->accessors, m, accessor)
|
|
|
|
{
|
|
|
|
printf(" accessor: %s : %s (%s)\n",
|
|
|
|
(accessor->ret?accessor->ret->type:""),
|
|
|
|
_accessor_type_str[accessor->type],
|
|
|
|
accessor->comment);
|
|
|
|
printf(" legacy : %s\n", accessor->legacy);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
EINA_LIST_FOREACH(kls->methods, l, meth)
|
|
|
|
{
|
|
|
|
printf(" method: %s\n", meth->name);
|
|
|
|
if (meth->ret)
|
|
|
|
printf(" return: %s (%s)\n", meth->ret->type, meth->ret->comment);
|
|
|
|
printf(" legacy : %s\n", meth->legacy);
|
|
|
|
printf(" obj_const : %s\n", meth->obj_const?"true":"false");
|
|
|
|
EINA_LIST_FOREACH(meth->params, m, param)
|
|
|
|
{
|
|
|
|
printf(" param: %s %s : %s (%s)\n",
|
|
|
|
_param_way_str[param->way], param->name,
|
|
|
|
param->type, param->comment);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
Eina_Bool
|
|
|
|
eo_tokenizer_database_fill(const char *filename)
|
|
|
|
{
|
|
|
|
Eina_Bool ret = EINA_FALSE;
|
|
|
|
const char *s;
|
|
|
|
Eina_List *k, *l, *m;
|
|
|
|
|
|
|
|
Eo_Class_Def *kls;
|
|
|
|
Eo_Property_Def *prop;
|
|
|
|
Eo_Method_Def *meth;
|
|
|
|
Eo_Param_Def *param;
|
|
|
|
Eo_Accessor_Def *accessor;
|
|
|
|
Eo_Event_Def *event;
|
|
|
|
Eo_Implement_Def *impl;
|
|
|
|
|
|
|
|
FILE *stream = NULL;
|
|
|
|
char *buffer = NULL;
|
|
|
|
|
|
|
|
Eo_Tokenizer *toknz = eo_tokenizer_get();
|
|
|
|
if (!toknz)
|
|
|
|
{
|
|
|
|
ERR("can't create eo_tokenizer");
|
|
|
|
goto end;
|
|
|
|
}
|
|
|
|
|
|
|
|
stream = fopen(filename, "rb");
|
|
|
|
if (!stream)
|
|
|
|
{
|
|
|
|
ERR("unable to read in %s", filename);
|
|
|
|
goto end;
|
|
|
|
}
|
|
|
|
|
|
|
|
buffer = malloc(BUFSIZE);
|
|
|
|
if (!buffer)
|
|
|
|
{
|
|
|
|
ERR("unable to allocate read buffer");
|
|
|
|
goto end;
|
|
|
|
}
|
|
|
|
|
|
|
|
unsigned int len = fread(buffer, 1, BUFSIZE, stream);
|
|
|
|
|
|
|
|
if (!len)
|
|
|
|
{
|
|
|
|
ERR("%s: is an empty file", filename);
|
|
|
|
goto end;
|
|
|
|
}
|
|
|
|
|
|
|
|
if (len == BUFSIZE)
|
|
|
|
{
|
|
|
|
ERR("%s: buffer(%d) is full, might not be big enough.", filename, len);
|
|
|
|
goto end;
|
|
|
|
}
|
|
|
|
|
|
|
|
if (!eo_tokenizer_mem_walk(toknz, filename, buffer, len)) goto end;
|
|
|
|
|
|
|
|
if (!toknz->classes)
|
|
|
|
{
|
|
|
|
ERR("No classes for file %s", filename);
|
|
|
|
goto end;
|
|
|
|
}
|
|
|
|
|
|
|
|
EINA_LIST_FOREACH(toknz->classes, k, kls)
|
|
|
|
{
|
|
|
|
database_class_add(kls->name, kls->type);
|
|
|
|
database_class_file_set(kls->name, filename);
|
|
|
|
|
|
|
|
if (kls->comment) database_class_description_set(kls->name, kls->comment);
|
|
|
|
|
|
|
|
EINA_LIST_FOREACH(kls->inherits, l, s)
|
|
|
|
database_class_inherit_add(kls->name, s);
|
|
|
|
|
|
|
|
if (kls->legacy_prefix)
|
|
|
|
{
|
|
|
|
database_class_legacy_prefix_set(kls->name, kls->legacy_prefix);
|
|
|
|
}
|
|
|
|
if (kls->eo_prefix)
|
|
|
|
{
|
|
|
|
database_class_eo_prefix_set(kls->name, kls->eo_prefix);
|
|
|
|
}
|
|
|
|
if (kls->data_type)
|
|
|
|
{
|
|
|
|
database_class_data_type_set(kls->name, kls->data_type);
|
|
|
|
}
|
|
|
|
EINA_LIST_FOREACH(kls->constructors, l, meth)
|
|
|
|
{
|
2014-04-06 06:41:45 -07:00
|
|
|
Eolian_Function foo_id = database_function_new(meth->name, EOLIAN_CTOR);
|
2014-03-29 21:07:19 -07:00
|
|
|
database_class_function_add(kls->name, foo_id);
|
2014-04-06 07:10:05 -07:00
|
|
|
if (meth->ret) database_function_return_comment_set(foo_id, EOLIAN_METHOD, meth->ret->comment);
|
2014-03-29 21:07:19 -07:00
|
|
|
database_function_data_set(foo_id, EOLIAN_LEGACY, meth->legacy);
|
|
|
|
EINA_LIST_FOREACH(meth->params, m, param)
|
|
|
|
{
|
|
|
|
database_method_parameter_add(foo_id, (Eolian_Parameter_Dir)param->way, param->type, param->name, param->comment);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
EINA_LIST_FOREACH(kls->destructors, l, meth)
|
|
|
|
{
|
2014-04-06 06:41:45 -07:00
|
|
|
Eolian_Function foo_id = database_function_new(meth->name, EOLIAN_DTOR);
|
2014-03-29 21:07:19 -07:00
|
|
|
database_class_function_add(kls->name, foo_id);
|
2014-04-06 07:10:05 -07:00
|
|
|
if (meth->ret) database_function_return_comment_set(foo_id, EOLIAN_METHOD, meth->ret->comment);
|
2014-03-29 21:07:19 -07:00
|
|
|
database_function_data_set(foo_id, EOLIAN_LEGACY, meth->legacy);
|
|
|
|
EINA_LIST_FOREACH(meth->params, m, param)
|
|
|
|
{
|
|
|
|
database_method_parameter_add(foo_id, (Eolian_Parameter_Dir)param->way, param->type, param->name, param->comment);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
EINA_LIST_FOREACH(kls->properties, l, prop)
|
|
|
|
{
|
2014-04-06 06:41:45 -07:00
|
|
|
Eolian_Function foo_id = database_function_new(prop->name, EOLIAN_UNRESOLVED);
|
2014-04-03 06:20:58 -07:00
|
|
|
database_function_scope_set(foo_id, prop->scope);
|
2014-03-29 21:07:19 -07:00
|
|
|
EINA_LIST_FOREACH(prop->keys, m, param)
|
|
|
|
{
|
|
|
|
Eolian_Function_Parameter p = database_property_key_add(
|
|
|
|
foo_id, param->type, param->name, param->comment);
|
|
|
|
database_parameter_nonull_set(p, param->nonull);
|
|
|
|
database_parameter_own_set(p, param->own);
|
|
|
|
}
|
|
|
|
EINA_LIST_FOREACH(prop->values, m, param)
|
|
|
|
{
|
|
|
|
Eolian_Function_Parameter p = database_property_value_add(
|
|
|
|
foo_id, param->type, param->name, param->comment);
|
|
|
|
database_parameter_nonull_set(p, param->nonull);
|
|
|
|
database_parameter_own_set(p, param->own);
|
|
|
|
}
|
|
|
|
EINA_LIST_FOREACH(prop->accessors, m, accessor)
|
|
|
|
{
|
2014-04-06 06:41:45 -07:00
|
|
|
database_function_type_set(foo_id, (accessor->type == SETTER?EOLIAN_PROP_SET:EOLIAN_PROP_GET));
|
2014-03-29 21:07:19 -07:00
|
|
|
if (accessor->ret && accessor->ret->type)
|
|
|
|
{
|
2014-04-06 07:10:05 -07:00
|
|
|
Eolian_Function_Type ftype =
|
|
|
|
accessor->type == SETTER?EOLIAN_PROP_SET:EOLIAN_PROP_GET;
|
2014-03-29 21:07:19 -07:00
|
|
|
database_function_return_type_set(foo_id,
|
2014-04-06 07:10:05 -07:00
|
|
|
ftype, accessor->ret->type);
|
|
|
|
database_function_return_comment_set(foo_id,
|
|
|
|
ftype, accessor->ret->comment);
|
2014-03-29 21:07:19 -07:00
|
|
|
database_function_return_flag_set_as_warn_unused(foo_id,
|
2014-04-06 07:10:05 -07:00
|
|
|
ftype, accessor->ret->warn_unused);
|
2014-03-29 21:07:19 -07:00
|
|
|
database_function_return_flag_set_own(foo_id,
|
2014-04-06 07:10:05 -07:00
|
|
|
ftype, accessor->ret->own);
|
2014-03-29 21:07:19 -07:00
|
|
|
database_function_return_dflt_val_set(foo_id,
|
2014-04-06 07:10:05 -07:00
|
|
|
ftype, accessor->ret->dflt_ret_val);
|
2014-03-29 21:07:19 -07:00
|
|
|
}
|
|
|
|
if (accessor->legacy)
|
|
|
|
{
|
|
|
|
database_function_data_set(foo_id,
|
|
|
|
(accessor->type == SETTER?EOLIAN_LEGACY_SET:EOLIAN_LEGACY_GET),
|
|
|
|
accessor->legacy);
|
|
|
|
}
|
|
|
|
database_function_description_set(foo_id,
|
|
|
|
(accessor->type == SETTER?EOLIAN_COMMENT_SET:EOLIAN_COMMENT_GET),
|
|
|
|
accessor->comment);
|
|
|
|
Eo_Accessor_Param *acc_param;
|
|
|
|
Eina_List *m2;
|
|
|
|
EINA_LIST_FOREACH(accessor->params, m2, acc_param)
|
|
|
|
{
|
|
|
|
Eolian_Function_Parameter desc = eolian_function_parameter_get(foo_id, acc_param->name);
|
|
|
|
if (!desc)
|
|
|
|
{
|
|
|
|
printf("Error - %s not known as parameter of property %s\n", acc_param->name, prop->name);
|
|
|
|
}
|
|
|
|
else
|
|
|
|
if (strstr(acc_param->attrs, "const"))
|
|
|
|
{
|
|
|
|
database_parameter_const_attribute_set(desc, accessor->type == GETTER, EINA_TRUE);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
database_class_function_add(kls->name, foo_id);
|
|
|
|
}
|
|
|
|
|
|
|
|
EINA_LIST_FOREACH(kls->methods, l, meth)
|
|
|
|
{
|
2014-04-06 06:41:45 -07:00
|
|
|
Eolian_Function foo_id = database_function_new(meth->name, EOLIAN_METHOD);
|
2014-04-03 06:20:58 -07:00
|
|
|
database_function_scope_set(foo_id, meth->scope);
|
2014-03-29 21:07:19 -07:00
|
|
|
database_class_function_add(kls->name, foo_id);
|
|
|
|
if (meth->ret)
|
|
|
|
{
|
2014-04-06 07:10:05 -07:00
|
|
|
database_function_return_type_set(foo_id, EOLIAN_METHOD, meth->ret->type);
|
|
|
|
database_function_return_comment_set(foo_id, EOLIAN_METHOD, meth->ret->comment);
|
2014-03-29 21:07:19 -07:00
|
|
|
database_function_return_flag_set_as_warn_unused(foo_id,
|
2014-04-06 06:41:45 -07:00
|
|
|
EOLIAN_METHOD, meth->ret->warn_unused);
|
|
|
|
database_function_return_flag_set_own(foo_id, EOLIAN_METHOD, meth->ret->own);
|
2014-03-29 21:07:19 -07:00
|
|
|
database_function_return_dflt_val_set(foo_id,
|
2014-04-06 06:41:45 -07:00
|
|
|
EOLIAN_METHOD, meth->ret->dflt_ret_val);
|
2014-03-29 21:07:19 -07:00
|
|
|
}
|
|
|
|
database_function_description_set(foo_id, EOLIAN_COMMENT, meth->comment);
|
|
|
|
database_function_data_set(foo_id, EOLIAN_LEGACY, meth->legacy);
|
|
|
|
database_function_object_set_as_const(foo_id, meth->obj_const);
|
|
|
|
EINA_LIST_FOREACH(meth->params, m, param)
|
|
|
|
{
|
|
|
|
Eolian_Function_Parameter p = database_method_parameter_add(foo_id,
|
|
|
|
(Eolian_Parameter_Dir)param->way, param->type, param->name, param->comment);
|
|
|
|
database_parameter_nonull_set(p, param->nonull);
|
|
|
|
database_parameter_own_set(p, param->own);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
EINA_LIST_FOREACH(kls->implements, l, impl)
|
|
|
|
{
|
|
|
|
const char *class = impl->meth_name;
|
|
|
|
Eina_Bool virtual_pure = EINA_FALSE;
|
|
|
|
if (!strcmp(class, "class::constructor"))
|
|
|
|
{
|
|
|
|
database_class_ctor_enable_set(kls->name, EINA_TRUE);
|
|
|
|
continue;
|
|
|
|
}
|
|
|
|
if (!strcmp(class, "class::destructor"))
|
|
|
|
{
|
|
|
|
database_class_dtor_enable_set(kls->name, EINA_TRUE);
|
|
|
|
continue;
|
|
|
|
}
|
|
|
|
if (!strncmp(class, "virtual::", 9)) virtual_pure = EINA_TRUE;
|
|
|
|
char *func = strstr(class, "::");
|
|
|
|
if (func) *func = '\0';
|
|
|
|
func += 2;
|
2014-04-06 06:41:45 -07:00
|
|
|
Eolian_Function_Type ftype = EOLIAN_UNRESOLVED;
|
2014-03-29 21:07:19 -07:00
|
|
|
char *type_as_str = strstr(func, "::");
|
|
|
|
if (type_as_str)
|
|
|
|
{
|
|
|
|
*type_as_str = '\0';
|
2014-04-06 06:41:45 -07:00
|
|
|
if (!strcmp(type_as_str+2, "set")) ftype = EOLIAN_PROP_SET;
|
|
|
|
else if (!strcmp(type_as_str+2, "get")) ftype = EOLIAN_PROP_GET;
|
2014-03-29 21:07:19 -07:00
|
|
|
}
|
|
|
|
if (virtual_pure)
|
|
|
|
{
|
|
|
|
/* Search the function into the existing functions of the current class */
|
|
|
|
Eolian_Function foo_id = eolian_class_function_find_by_name(
|
|
|
|
kls->name, func, ftype);
|
|
|
|
if (!foo_id)
|
|
|
|
{
|
|
|
|
ERR("Error - %s not known in class %s", class + 9, kls->name);
|
|
|
|
goto end;
|
|
|
|
}
|
|
|
|
database_function_set_as_virtual_pure(foo_id, ftype);
|
|
|
|
continue;
|
|
|
|
}
|
|
|
|
Eolian_Implement impl_desc = database_implement_new(class, func, ftype);
|
|
|
|
if (impl->legacy)
|
|
|
|
{
|
|
|
|
Eo_Implement_Legacy_Def *eo_leg = impl->legacy;
|
|
|
|
Eolian_Implement_Legacy leg = database_implement_legacy_add(
|
|
|
|
impl_desc, eo_leg->function_name);
|
|
|
|
database_implement_legacy_return_add(leg, eo_leg->ret_type, eo_leg->ret_value);
|
|
|
|
if (eo_leg->params)
|
|
|
|
{
|
|
|
|
Eina_List *itr;
|
|
|
|
Eo_Implement_Legacy_Param_Def *p;
|
|
|
|
EINA_LIST_FOREACH(eo_leg->params, itr, p)
|
|
|
|
database_implement_legacy_param_add(leg, p->eo_name,
|
|
|
|
p->legacy_name, p->comment);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
database_class_implement_add(kls->name, impl_desc);
|
|
|
|
}
|
|
|
|
|
|
|
|
EINA_LIST_FOREACH(kls->events, l, event)
|
|
|
|
{
|
2014-04-02 04:04:12 -07:00
|
|
|
Eolian_Event ev = database_event_new(event->name, event->type, event->comment);
|
2014-03-29 21:07:19 -07:00
|
|
|
database_class_event_add(kls->name, ev);
|
|
|
|
}
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
ret = EINA_TRUE;
|
|
|
|
end:
|
|
|
|
if (buffer) free(buffer);
|
|
|
|
if (stream) fclose(stream);
|
|
|
|
if (toknz) eo_tokenizer_free(toknz);
|
|
|
|
return ret;
|
|
|
|
}
|
|
|
|
|
|
|
|
void
|
|
|
|
eo_tokenizer_free(Eo_Tokenizer *toknz)
|
|
|
|
{
|
|
|
|
Eo_Class_Def *kls;
|
|
|
|
|
|
|
|
if (toknz->source)
|
|
|
|
eina_stringshare_del(toknz->source);
|
|
|
|
|
|
|
|
EINA_LIST_FREE(toknz->classes, kls)
|
|
|
|
eo_definitions_class_def_free(kls);
|
|
|
|
|
|
|
|
free(toknz);
|
|
|
|
}
|
|
|
|
|