Пример #1
0
bool is_valid_function_expression(const char* in_code_line) {
    unsigned long find_equal_index=0;
    unsigned long find_length=strlen(in_code_line);
    char variables_name[VARIABLES_NAME_LENGTH]={0};

    for (;find_equal_index<find_length;++find_equal_index) {
        if ('='==*(char*)(in_code_line+find_equal_index)) {
            string_get_equal_left(in_code_line,variables_name);
            if (is_valid_variables_name(variables_name))
                return is_valid_function(in_code_line+find_equal_index+1);
        }
    }
    return is_valid_function(in_code_line);
}
Пример #2
0
Файл: type.c Проект: ryvnf/zc1
struct type *type_new_from_ast(struct ast *ast) {
	switch (ast->type) {
	case SYN_VOID:
		assert(is_valid_void(ast));
		return type_new_void();
	case SYN_BOOL:
		assert(is_valid_bool(ast));
		return type_new_bool();
	case SYN_BYTE:
		assert(is_valid_byte(ast));
		return type_new_byte();
	case SYN_SHORT:
		assert(is_valid_short(ast));
		return type_new_short();
	case SYN_INT:
		assert(is_valid_int(ast));
		return type_new_int();
	case SYN_LONG:
		assert(is_valid_long(ast));
		return type_new_long();
	case SYN_UBYTE:
		assert(is_valid_ubyte(ast));
		return type_new_ubyte();
	case SYN_USHORT:
		assert(is_valid_ushort(ast));
		return type_new_ushort();
	case SYN_UINT:
		assert(is_valid_uint(ast));
		return type_new_uint();
	case SYN_ULONG:
		assert(is_valid_ulong(ast));
		return type_new_ulong();
	case SYN_HALF:
		assert(is_valid_half(ast));
		return type_new_half();
	case SYN_FLOAT:
		assert(is_valid_float(ast));
		return type_new_float();
	case SYN_DOUBLE:
		assert(is_valid_double(ast));
		return type_new_double();
	case SYN_POINTER:
		assert(is_valid_pointer(ast));
		return pointer_ast(&ast->val.op);
	case SYN_ARRAY:
		assert(is_valid_array(ast));
		return array_ast(&ast->val.op);
	case SYN_ARRAY_UNDEFINED_SIZE:
		assert(is_valid_array_undefined_size(ast));
		return array_undefined_size_ast(&ast->val.op);
	case SYN_FUNCTION:
		assert(is_valid_function(ast));
		return function_ast(&ast->val.op);
	default:
		ERROR_HERE;
	}
}