forked from enlightenment/efl
eolian: consistent and cleaner error values from APIs
Now all error/unknown/etc values returned from APIs are zero, previously it was a mix of zeroes and minus ones. Also, some enums that had no error/invalid value before have one now, which allows for better distinction between what is an error and what is an intended result.
This commit is contained in:
parent
70ad68bfc7
commit
a70645e154
|
@ -573,10 +573,6 @@ eo_gen_docs_func_gen(const Eolian_Function *fid, Eolian_Function_Type ftype,
|
||||||
|
|
||||||
switch (dir)
|
switch (dir)
|
||||||
{
|
{
|
||||||
case EOLIAN_IN_PARAM:
|
|
||||||
eina_strbuf_append(buf, " * @param[in] ");
|
|
||||||
curl += sizeof(" * @param[in] ") - 1;
|
|
||||||
break;
|
|
||||||
case EOLIAN_OUT_PARAM:
|
case EOLIAN_OUT_PARAM:
|
||||||
eina_strbuf_append(buf, " * @param[out] ");
|
eina_strbuf_append(buf, " * @param[out] ");
|
||||||
curl += sizeof(" * @param[out] ") - 1;
|
curl += sizeof(" * @param[out] ") - 1;
|
||||||
|
@ -585,6 +581,10 @@ eo_gen_docs_func_gen(const Eolian_Function *fid, Eolian_Function_Type ftype,
|
||||||
eina_strbuf_append(buf, " * @param[in,out] ");
|
eina_strbuf_append(buf, " * @param[in,out] ");
|
||||||
curl += sizeof(" * @param[in,out] ") - 1;
|
curl += sizeof(" * @param[in,out] ") - 1;
|
||||||
break;
|
break;
|
||||||
|
default:
|
||||||
|
eina_strbuf_append(buf, " * @param[in] ");
|
||||||
|
curl += sizeof(" * @param[in] ") - 1;
|
||||||
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
const char *nm = eolian_parameter_name_get(par);
|
const char *nm = eolian_parameter_name_get(par);
|
||||||
|
|
|
@ -40,14 +40,15 @@ ffi.cdef [[
|
||||||
|
|
||||||
typedef enum
|
typedef enum
|
||||||
{
|
{
|
||||||
EOLIAN_IN_PARAM = 0,
|
EOLIAN_UNKNOWN_PARAM = 0,
|
||||||
|
EOLIAN_IN_PARAM,
|
||||||
EOLIAN_OUT_PARAM,
|
EOLIAN_OUT_PARAM,
|
||||||
EOLIAN_INOUT_PARAM
|
EOLIAN_INOUT_PARAM
|
||||||
} Eolian_Parameter_Dir;
|
} Eolian_Parameter_Dir;
|
||||||
|
|
||||||
typedef enum
|
typedef enum
|
||||||
{
|
{
|
||||||
EOLIAN_CLASS_UNKNOWN_TYPE = 0,
|
EOLIAN_CLASS_UNKNOWN_TYPE = 0,
|
||||||
EOLIAN_CLASS_REGULAR,
|
EOLIAN_CLASS_REGULAR,
|
||||||
EOLIAN_CLASS_ABSTRACT,
|
EOLIAN_CLASS_ABSTRACT,
|
||||||
EOLIAN_CLASS_MIXIN,
|
EOLIAN_CLASS_MIXIN,
|
||||||
|
@ -56,7 +57,8 @@ ffi.cdef [[
|
||||||
|
|
||||||
typedef enum
|
typedef enum
|
||||||
{
|
{
|
||||||
EOLIAN_SCOPE_PUBLIC = 0,
|
EOLIAN_SCOPE_UNKNOWN = 0,
|
||||||
|
EOLIAN_SCOPE_PUBLIC,
|
||||||
EOLIAN_SCOPE_PRIVATE,
|
EOLIAN_SCOPE_PRIVATE,
|
||||||
EOLIAN_SCOPE_PROTECTED
|
EOLIAN_SCOPE_PROTECTED
|
||||||
} Eolian_Object_Scope;
|
} Eolian_Object_Scope;
|
||||||
|
@ -142,7 +144,7 @@ ffi.cdef [[
|
||||||
} Eolian_Value_t;
|
} Eolian_Value_t;
|
||||||
|
|
||||||
typedef enum {
|
typedef enum {
|
||||||
EOLIAN_BINOP_INVALID = -1,
|
EOLIAN_BINOP_INVALID = 0,
|
||||||
|
|
||||||
EOLIAN_BINOP_ADD, /* + int, float */
|
EOLIAN_BINOP_ADD, /* + int, float */
|
||||||
EOLIAN_BINOP_SUB, /* - int, float */
|
EOLIAN_BINOP_SUB, /* - int, float */
|
||||||
|
@ -168,7 +170,7 @@ ffi.cdef [[
|
||||||
} Eolian_Binary_Operator;
|
} Eolian_Binary_Operator;
|
||||||
|
|
||||||
typedef enum {
|
typedef enum {
|
||||||
EOLIAN_UNOP_INVALID = -1,
|
EOLIAN_UNOP_INVALID = 0,
|
||||||
|
|
||||||
EOLIAN_UNOP_UNM, /* - sint */
|
EOLIAN_UNOP_UNM, /* - sint */
|
||||||
EOLIAN_UNOP_UNP, /* + sint */
|
EOLIAN_UNOP_UNP, /* + sint */
|
||||||
|
@ -178,7 +180,7 @@ ffi.cdef [[
|
||||||
} Eolian_Unary_Operator;
|
} Eolian_Unary_Operator;
|
||||||
|
|
||||||
typedef enum {
|
typedef enum {
|
||||||
EOLIAN_DECL_UNKNOWN = -1,
|
EOLIAN_DECL_UNKNOWN = 0,
|
||||||
EOLIAN_DECL_CLASS,
|
EOLIAN_DECL_CLASS,
|
||||||
EOLIAN_DECL_ALIAS,
|
EOLIAN_DECL_ALIAS,
|
||||||
EOLIAN_DECL_STRUCT,
|
EOLIAN_DECL_STRUCT,
|
||||||
|
@ -187,7 +189,7 @@ ffi.cdef [[
|
||||||
} Eolian_Declaration_Type;
|
} Eolian_Declaration_Type;
|
||||||
|
|
||||||
typedef enum {
|
typedef enum {
|
||||||
EOLIAN_DOC_TOKEN_UNKNOWN = -1,
|
EOLIAN_DOC_TOKEN_UNKNOWN = 0,
|
||||||
EOLIAN_DOC_TOKEN_TEXT,
|
EOLIAN_DOC_TOKEN_TEXT,
|
||||||
EOLIAN_DOC_TOKEN_REF,
|
EOLIAN_DOC_TOKEN_REF,
|
||||||
EOLIAN_DOC_TOKEN_MARK_NOTE,
|
EOLIAN_DOC_TOKEN_MARK_NOTE,
|
||||||
|
@ -433,9 +435,10 @@ end
|
||||||
cutil.init_module(init, shutdown)
|
cutil.init_module(init, shutdown)
|
||||||
|
|
||||||
M.object_scope = {
|
M.object_scope = {
|
||||||
PUBLIC = 0,
|
UNKNOWN = 0,
|
||||||
PRIVATE = 1,
|
PUBLIC = 1,
|
||||||
PROTECTED = 2
|
PRIVATE = 2,
|
||||||
|
PROTECTED = 3
|
||||||
}
|
}
|
||||||
|
|
||||||
M.directory_scan = function(dir)
|
M.directory_scan = function(dir)
|
||||||
|
@ -479,12 +482,12 @@ M.database_validate = function()
|
||||||
end
|
end
|
||||||
|
|
||||||
M.declaration_type = {
|
M.declaration_type = {
|
||||||
UNKNOWN = -1,
|
UNKNOWN = 0,
|
||||||
CLASS = 0,
|
CLASS = 0,
|
||||||
ALIAS = 1,
|
ALIAS = 1,
|
||||||
STRUCT = 2,
|
STRUCT = 2,
|
||||||
ENUM = 3,
|
ENUM = 3,
|
||||||
VAR = 4
|
VAR = 4
|
||||||
}
|
}
|
||||||
|
|
||||||
M.type_type = {
|
M.type_type = {
|
||||||
|
@ -849,9 +852,10 @@ M.Function = ffi.metatype("Eolian_Function", {
|
||||||
})
|
})
|
||||||
|
|
||||||
M.parameter_dir = {
|
M.parameter_dir = {
|
||||||
IN = 0,
|
UNKNOWN = 0,
|
||||||
OUT = 1,
|
IN = 1,
|
||||||
INOUT = 2
|
OUT = 2,
|
||||||
|
INOUT = 3
|
||||||
}
|
}
|
||||||
|
|
||||||
ffi.metatype("Eolian_Function_Parameter", {
|
ffi.metatype("Eolian_Function_Parameter", {
|
||||||
|
@ -1271,39 +1275,39 @@ M.Value = ffi.metatype("Eolian_Value", {
|
||||||
})
|
})
|
||||||
|
|
||||||
M.binary_operator = {
|
M.binary_operator = {
|
||||||
INVALID = -1,
|
INVALID = 0,
|
||||||
|
|
||||||
ADD = 0,
|
ADD = 1,
|
||||||
SUB = 1,
|
SUB = 2,
|
||||||
MUL = 2,
|
MUL = 3,
|
||||||
DIV = 3,
|
DIV = 4,
|
||||||
MOD = 4,
|
MOD = 5,
|
||||||
|
|
||||||
EQ = 5,
|
EQ = 6,
|
||||||
NQ = 6,
|
NQ = 7,
|
||||||
GT = 7,
|
GT = 8,
|
||||||
LT = 8,
|
LT = 9,
|
||||||
GE = 9,
|
GE = 10,
|
||||||
LE = 10,
|
LE = 11,
|
||||||
|
|
||||||
AND = 11,
|
AND = 12,
|
||||||
OR = 12,
|
OR = 13,
|
||||||
|
|
||||||
BAND = 13,
|
BAND = 14,
|
||||||
BOR = 14,
|
BOR = 15,
|
||||||
BXOR = 15,
|
BXOR = 16,
|
||||||
LSH = 16,
|
LSH = 17,
|
||||||
RSH = 17
|
RSH = 18
|
||||||
}
|
}
|
||||||
|
|
||||||
M.unary_operator = {
|
M.unary_operator = {
|
||||||
INVALID = -1,
|
INVALID = 0,
|
||||||
|
|
||||||
UNM = 0,
|
UNM = 1,
|
||||||
UNP = 1,
|
UNP = 2,
|
||||||
|
|
||||||
NOT = 2,
|
NOT = 3,
|
||||||
BNOT = 3
|
BNOT = 4
|
||||||
}
|
}
|
||||||
|
|
||||||
M.Expression = ffi.metatype("Eolian_Expression", {
|
M.Expression = ffi.metatype("Eolian_Expression", {
|
||||||
|
@ -1523,14 +1527,14 @@ M.Documentation = ffi.metatype("Eolian_Documentation", {
|
||||||
})
|
})
|
||||||
|
|
||||||
M.doc_token_type = {
|
M.doc_token_type = {
|
||||||
UNKNOWN = -1,
|
UNKNOWN = 0,
|
||||||
TEXT = 0,
|
TEXT = 1,
|
||||||
REF = 1,
|
REF = 2,
|
||||||
MARK_NOTE = 2,
|
MARK_NOTE = 3,
|
||||||
MARK_WARNING = 3,
|
MARK_WARNING = 4,
|
||||||
MARK_REMARK = 4,
|
MARK_REMARK = 5,
|
||||||
MARK_TODO = 5,
|
MARK_TODO = 6,
|
||||||
MARKUP_MONOSPACE = 6
|
MARKUP_MONOSPACE = 7
|
||||||
}
|
}
|
||||||
|
|
||||||
M.doc_ref_type = {
|
M.doc_ref_type = {
|
||||||
|
|
|
@ -182,7 +182,8 @@ typedef enum
|
||||||
|
|
||||||
typedef enum
|
typedef enum
|
||||||
{
|
{
|
||||||
EOLIAN_IN_PARAM = 0,
|
EOLIAN_UNKNOWN_PARAM = 0,
|
||||||
|
EOLIAN_IN_PARAM,
|
||||||
EOLIAN_OUT_PARAM,
|
EOLIAN_OUT_PARAM,
|
||||||
EOLIAN_INOUT_PARAM
|
EOLIAN_INOUT_PARAM
|
||||||
} Eolian_Parameter_Dir;
|
} Eolian_Parameter_Dir;
|
||||||
|
@ -198,7 +199,8 @@ typedef enum
|
||||||
|
|
||||||
typedef enum
|
typedef enum
|
||||||
{
|
{
|
||||||
EOLIAN_SCOPE_PUBLIC = 0,
|
EOLIAN_SCOPE_UNKNOWN = 0,
|
||||||
|
EOLIAN_SCOPE_PUBLIC,
|
||||||
EOLIAN_SCOPE_PRIVATE,
|
EOLIAN_SCOPE_PRIVATE,
|
||||||
EOLIAN_SCOPE_PROTECTED
|
EOLIAN_SCOPE_PROTECTED
|
||||||
} Eolian_Object_Scope;
|
} Eolian_Object_Scope;
|
||||||
|
@ -291,7 +293,7 @@ typedef struct _Eolian_Value
|
||||||
|
|
||||||
typedef enum
|
typedef enum
|
||||||
{
|
{
|
||||||
EOLIAN_BINOP_INVALID = -1,
|
EOLIAN_BINOP_INVALID = 0,
|
||||||
|
|
||||||
EOLIAN_BINOP_ADD, /* + int, float */
|
EOLIAN_BINOP_ADD, /* + int, float */
|
||||||
EOLIAN_BINOP_SUB, /* - int, float */
|
EOLIAN_BINOP_SUB, /* - int, float */
|
||||||
|
@ -318,7 +320,7 @@ typedef enum
|
||||||
|
|
||||||
typedef enum
|
typedef enum
|
||||||
{
|
{
|
||||||
EOLIAN_UNOP_INVALID = -1,
|
EOLIAN_UNOP_INVALID = 0,
|
||||||
|
|
||||||
EOLIAN_UNOP_UNM, /* - sint */
|
EOLIAN_UNOP_UNM, /* - sint */
|
||||||
EOLIAN_UNOP_UNP, /* + sint */
|
EOLIAN_UNOP_UNP, /* + sint */
|
||||||
|
@ -329,7 +331,7 @@ typedef enum
|
||||||
|
|
||||||
typedef enum
|
typedef enum
|
||||||
{
|
{
|
||||||
EOLIAN_DECL_UNKNOWN = -1,
|
EOLIAN_DECL_UNKNOWN = 0,
|
||||||
EOLIAN_DECL_CLASS,
|
EOLIAN_DECL_CLASS,
|
||||||
EOLIAN_DECL_ALIAS,
|
EOLIAN_DECL_ALIAS,
|
||||||
EOLIAN_DECL_STRUCT,
|
EOLIAN_DECL_STRUCT,
|
||||||
|
@ -339,7 +341,7 @@ typedef enum
|
||||||
|
|
||||||
typedef enum
|
typedef enum
|
||||||
{
|
{
|
||||||
EOLIAN_DOC_TOKEN_UNKNOWN = -1,
|
EOLIAN_DOC_TOKEN_UNKNOWN = 0,
|
||||||
EOLIAN_DOC_TOKEN_TEXT,
|
EOLIAN_DOC_TOKEN_TEXT,
|
||||||
EOLIAN_DOC_TOKEN_REF,
|
EOLIAN_DOC_TOKEN_REF,
|
||||||
EOLIAN_DOC_TOKEN_MARK_NOTE,
|
EOLIAN_DOC_TOKEN_MARK_NOTE,
|
||||||
|
|
|
@ -29,7 +29,7 @@ eolian_event_documentation_get(const Eolian_Event *event)
|
||||||
EAPI Eolian_Object_Scope
|
EAPI Eolian_Object_Scope
|
||||||
eolian_event_scope_get(const Eolian_Event *event)
|
eolian_event_scope_get(const Eolian_Event *event)
|
||||||
{
|
{
|
||||||
EINA_SAFETY_ON_NULL_RETURN_VAL(event, EOLIAN_SCOPE_PUBLIC);
|
EINA_SAFETY_ON_NULL_RETURN_VAL(event, EOLIAN_SCOPE_UNKNOWN);
|
||||||
return event->scope;
|
return event->scope;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -8,25 +8,25 @@
|
||||||
EAPI Eolian_Object_Scope
|
EAPI Eolian_Object_Scope
|
||||||
eolian_function_scope_get(const Eolian_Function *fid, Eolian_Function_Type ftype)
|
eolian_function_scope_get(const Eolian_Function *fid, Eolian_Function_Type ftype)
|
||||||
{
|
{
|
||||||
EINA_SAFETY_ON_NULL_RETURN_VAL(fid, EOLIAN_SCOPE_PUBLIC);
|
EINA_SAFETY_ON_NULL_RETURN_VAL(fid, EOLIAN_SCOPE_UNKNOWN);
|
||||||
EINA_SAFETY_ON_FALSE_RETURN_VAL(ftype != EOLIAN_UNRESOLVED, EOLIAN_SCOPE_PUBLIC);
|
EINA_SAFETY_ON_FALSE_RETURN_VAL(ftype != EOLIAN_UNRESOLVED, EOLIAN_SCOPE_UNKNOWN);
|
||||||
EINA_SAFETY_ON_FALSE_RETURN_VAL(ftype != EOLIAN_PROPERTY, EOLIAN_SCOPE_PUBLIC);
|
EINA_SAFETY_ON_FALSE_RETURN_VAL(ftype != EOLIAN_PROPERTY, EOLIAN_SCOPE_UNKNOWN);
|
||||||
switch (ftype)
|
switch (ftype)
|
||||||
{
|
{
|
||||||
case EOLIAN_METHOD:
|
case EOLIAN_METHOD:
|
||||||
if (fid->type != EOLIAN_METHOD)
|
if (fid->type != EOLIAN_METHOD)
|
||||||
return EOLIAN_SCOPE_PUBLIC;
|
return EOLIAN_SCOPE_UNKNOWN;
|
||||||
return fid->get_scope;
|
return fid->get_scope;
|
||||||
case EOLIAN_PROP_GET:
|
case EOLIAN_PROP_GET:
|
||||||
if ((fid->type != EOLIAN_PROP_GET) && (fid->type != EOLIAN_PROPERTY))
|
if ((fid->type != EOLIAN_PROP_GET) && (fid->type != EOLIAN_PROPERTY))
|
||||||
return EOLIAN_SCOPE_PUBLIC;
|
return EOLIAN_SCOPE_UNKNOWN;
|
||||||
return fid->get_scope;
|
return fid->get_scope;
|
||||||
case EOLIAN_PROP_SET:
|
case EOLIAN_PROP_SET:
|
||||||
if ((fid->type != EOLIAN_PROP_SET) && (fid->type != EOLIAN_PROPERTY))
|
if ((fid->type != EOLIAN_PROP_SET) && (fid->type != EOLIAN_PROPERTY))
|
||||||
return EOLIAN_SCOPE_PUBLIC;
|
return EOLIAN_SCOPE_UNKNOWN;
|
||||||
return fid->set_scope;
|
return fid->set_scope;
|
||||||
default:
|
default:
|
||||||
return EOLIAN_SCOPE_PUBLIC;
|
return EOLIAN_SCOPE_UNKNOWN;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -8,7 +8,7 @@
|
||||||
EAPI Eolian_Parameter_Dir
|
EAPI Eolian_Parameter_Dir
|
||||||
eolian_parameter_direction_get(const Eolian_Function_Parameter *param)
|
eolian_parameter_direction_get(const Eolian_Function_Parameter *param)
|
||||||
{
|
{
|
||||||
EINA_SAFETY_ON_NULL_RETURN_VAL(param, EOLIAN_IN_PARAM);
|
EINA_SAFETY_ON_NULL_RETURN_VAL(param, EOLIAN_UNKNOWN_PARAM);
|
||||||
return param->param_dir;
|
return param->param_dir;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -270,7 +270,7 @@ get_binop_id(int tok)
|
||||||
case TOK_LSH: return EOLIAN_BINOP_LSH;
|
case TOK_LSH: return EOLIAN_BINOP_LSH;
|
||||||
case TOK_RSH: return EOLIAN_BINOP_RSH;
|
case TOK_RSH: return EOLIAN_BINOP_RSH;
|
||||||
|
|
||||||
default: return -1;
|
default: return EOLIAN_BINOP_INVALID;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -284,11 +284,13 @@ get_unop_id(int tok)
|
||||||
case '!': return EOLIAN_UNOP_NOT;
|
case '!': return EOLIAN_UNOP_NOT;
|
||||||
case '~': return EOLIAN_UNOP_BNOT;
|
case '~': return EOLIAN_UNOP_BNOT;
|
||||||
|
|
||||||
default: return -1;
|
default: return EOLIAN_UNOP_INVALID;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
static const int binprec[] = {
|
static const int binprec[] = {
|
||||||
|
-1, /* invalid */
|
||||||
|
|
||||||
8, /* + */
|
8, /* + */
|
||||||
8, /* - */
|
8, /* - */
|
||||||
9, /* * */
|
9, /* * */
|
||||||
|
@ -314,13 +316,6 @@ static const int binprec[] = {
|
||||||
|
|
||||||
#define UNARY_PRECEDENCE 10
|
#define UNARY_PRECEDENCE 10
|
||||||
|
|
||||||
static int
|
|
||||||
get_binop_prec(Eolian_Binary_Operator id)
|
|
||||||
{
|
|
||||||
if (id < 0) return -1;
|
|
||||||
return binprec[id];
|
|
||||||
}
|
|
||||||
|
|
||||||
static Eolian_Expression *parse_expr_bin(Eo_Lexer *ls, int min_prec);
|
static Eolian_Expression *parse_expr_bin(Eo_Lexer *ls, int min_prec);
|
||||||
static Eolian_Expression *parse_expr(Eo_Lexer *ls);
|
static Eolian_Expression *parse_expr(Eo_Lexer *ls);
|
||||||
|
|
||||||
|
@ -329,7 +324,7 @@ parse_expr_simple(Eo_Lexer *ls)
|
||||||
{
|
{
|
||||||
Eolian_Expression *expr;
|
Eolian_Expression *expr;
|
||||||
Eolian_Unary_Operator unop = get_unop_id(ls->t.token);
|
Eolian_Unary_Operator unop = get_unop_id(ls->t.token);
|
||||||
if (unop >= 0)
|
if (unop != EOLIAN_UNOP_INVALID)
|
||||||
{
|
{
|
||||||
int line = ls->line_number, col = ls->column;
|
int line = ls->line_number, col = ls->column;
|
||||||
eo_lexer_get(ls);
|
eo_lexer_get(ls);
|
||||||
|
@ -436,8 +431,8 @@ parse_expr_bin(Eo_Lexer *ls, int min_prec)
|
||||||
{
|
{
|
||||||
Eolian_Expression *rhs, *bin;
|
Eolian_Expression *rhs, *bin;
|
||||||
Eolian_Binary_Operator op = get_binop_id(ls->t.token);
|
Eolian_Binary_Operator op = get_binop_id(ls->t.token);
|
||||||
int prec = get_binop_prec(op);
|
int prec = binprec[op];
|
||||||
if ((op < 0) || (prec < 0) || (prec < min_prec))
|
if ((op == EOLIAN_BINOP_INVALID) || (prec < 0) || (prec < min_prec))
|
||||||
break;
|
break;
|
||||||
eo_lexer_get(ls);
|
eo_lexer_get(ls);
|
||||||
rhs = parse_expr_bin(ls, prec + 1);
|
rhs = parse_expr_bin(ls, prec + 1);
|
||||||
|
@ -1073,6 +1068,7 @@ parse_param(Eo_Lexer *ls, Eina_List **params, Eina_Bool allow_inout,
|
||||||
Eina_Bool has_nonull = EINA_FALSE, has_optional = EINA_FALSE,
|
Eina_Bool has_nonull = EINA_FALSE, has_optional = EINA_FALSE,
|
||||||
has_nullable = EINA_FALSE;
|
has_nullable = EINA_FALSE;
|
||||||
Eolian_Function_Parameter *par = calloc(1, sizeof(Eolian_Function_Parameter));
|
Eolian_Function_Parameter *par = calloc(1, sizeof(Eolian_Function_Parameter));
|
||||||
|
par->param_dir = EOLIAN_IN_PARAM;
|
||||||
FILL_BASE(par->base, ls, ls->line_number, ls->column);
|
FILL_BASE(par->base, ls, ls->line_number, ls->column);
|
||||||
*params = eina_list_append(*params, par);
|
*params = eina_list_append(*params, par);
|
||||||
if (allow_inout && ls->t.kw == KW_at_in)
|
if (allow_inout && ls->t.kw == KW_at_in)
|
||||||
|
@ -1321,6 +1317,7 @@ parse_property(Eo_Lexer *ls)
|
||||||
prop = calloc(1, sizeof(Eolian_Function));
|
prop = calloc(1, sizeof(Eolian_Function));
|
||||||
prop->klass = ls->tmp.kls;
|
prop->klass = ls->tmp.kls;
|
||||||
prop->type = EOLIAN_UNRESOLVED;
|
prop->type = EOLIAN_UNRESOLVED;
|
||||||
|
prop->get_scope = prop->set_scope = EOLIAN_SCOPE_PUBLIC;
|
||||||
FILL_BASE(prop->base, ls, ls->line_number, ls->column);
|
FILL_BASE(prop->base, ls, ls->line_number, ls->column);
|
||||||
ls->tmp.kls->properties = eina_list_append(ls->tmp.kls->properties, prop);
|
ls->tmp.kls->properties = eina_list_append(ls->tmp.kls->properties, prop);
|
||||||
check(ls, TOK_VALUE);
|
check(ls, TOK_VALUE);
|
||||||
|
@ -1406,6 +1403,7 @@ parse_method(Eo_Lexer *ls)
|
||||||
meth = calloc(1, sizeof(Eolian_Function));
|
meth = calloc(1, sizeof(Eolian_Function));
|
||||||
meth->klass = ls->tmp.kls;
|
meth->klass = ls->tmp.kls;
|
||||||
meth->type = EOLIAN_METHOD;
|
meth->type = EOLIAN_METHOD;
|
||||||
|
meth->get_scope = meth->set_scope = EOLIAN_SCOPE_PUBLIC;
|
||||||
FILL_BASE(meth->base, ls, ls->line_number, ls->column);
|
FILL_BASE(meth->base, ls, ls->line_number, ls->column);
|
||||||
ls->tmp.kls->methods = eina_list_append(ls->tmp.kls->methods, meth);
|
ls->tmp.kls->methods = eina_list_append(ls->tmp.kls->methods, meth);
|
||||||
check(ls, TOK_VALUE);
|
check(ls, TOK_VALUE);
|
||||||
|
@ -1692,6 +1690,7 @@ parse_event(Eo_Lexer *ls)
|
||||||
{
|
{
|
||||||
Eolian_Event *ev = calloc(1, sizeof(Eolian_Event));
|
Eolian_Event *ev = calloc(1, sizeof(Eolian_Event));
|
||||||
FILL_BASE(ev->base, ls, ls->line_number, ls->column);
|
FILL_BASE(ev->base, ls, ls->line_number, ls->column);
|
||||||
|
ev->scope = EOLIAN_SCOPE_PUBLIC;
|
||||||
Eina_Strbuf *buf = push_strbuf(ls);
|
Eina_Strbuf *buf = push_strbuf(ls);
|
||||||
ls->tmp.kls->events = eina_list_append(ls->tmp.kls->events, ev);
|
ls->tmp.kls->events = eina_list_append(ls->tmp.kls->events, ev);
|
||||||
check(ls, TOK_VALUE);
|
check(ls, TOK_VALUE);
|
||||||
|
|
|
@ -226,7 +226,7 @@ struct _Eolian_Event
|
||||||
Eolian_Documentation *doc;
|
Eolian_Documentation *doc;
|
||||||
Eolian_Type *type;
|
Eolian_Type *type;
|
||||||
Eolian_Class *klass;
|
Eolian_Class *klass;
|
||||||
int scope;
|
Eolian_Object_Scope scope;
|
||||||
Eina_Bool is_beta :1;
|
Eina_Bool is_beta :1;
|
||||||
Eina_Bool is_hot :1;
|
Eina_Bool is_hot :1;
|
||||||
Eina_Bool is_restart :1;
|
Eina_Bool is_restart :1;
|
||||||
|
|
|
@ -12,6 +12,7 @@ local M = {}
|
||||||
|
|
||||||
M.Node = util.Object:clone {
|
M.Node = util.Object:clone {
|
||||||
scope = {
|
scope = {
|
||||||
|
UNKNOWN = eolian.object_scope.UNKNOWN,
|
||||||
PUBLIC = eolian.object_scope.PUBLIC,
|
PUBLIC = eolian.object_scope.PUBLIC,
|
||||||
PRIVATE = eolian.object_scope.PRIVATE,
|
PRIVATE = eolian.object_scope.PRIVATE,
|
||||||
PROTECTED = eolian.object_scope.PROTECTED
|
PROTECTED = eolian.object_scope.PROTECTED
|
||||||
|
@ -408,6 +409,7 @@ M.Function = Node:clone {
|
||||||
}
|
}
|
||||||
|
|
||||||
M.Parameter = Node:clone {
|
M.Parameter = Node:clone {
|
||||||
|
UNKNOWN = eolian.param_dir.UNKNOWN,
|
||||||
IN = eolian.parameter_dir.IN,
|
IN = eolian.parameter_dir.IN,
|
||||||
OUT = eolian.parameter_dir.OUT,
|
OUT = eolian.parameter_dir.OUT,
|
||||||
INOUT = eolian.parameter_dir.INOUT,
|
INOUT = eolian.parameter_dir.INOUT,
|
||||||
|
@ -427,7 +429,8 @@ M.Parameter = Node:clone {
|
||||||
[self.OUT] = "out",
|
[self.OUT] = "out",
|
||||||
[self.INOUT] = "inout"
|
[self.INOUT] = "inout"
|
||||||
}
|
}
|
||||||
return dir_to_str[self:direction_get()]
|
return assert(dir_to_str[self:direction_get()],
|
||||||
|
"unknown parameter direction")
|
||||||
end,
|
end,
|
||||||
|
|
||||||
type_get = function(self)
|
type_get = function(self)
|
||||||
|
|
Loading…
Reference in New Issue