summary |
shortlog |
log |
commit | commitdiff |
tree
raw |
patch |
inline | side by side (from parent 1:
30ea18a)
Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
$$->u.unary_expression.type = UNARY_STRING;
$$->u.unary_expression.u.string = yylval.gs->s;
}
$$->u.unary_expression.type = UNARY_STRING;
$$->u.unary_expression.u.string = yylval.gs->s;
}
| DECIMAL_CONSTANT
{
$$ = make_node(scanner, NODE_UNARY_EXPRESSION);
| DECIMAL_CONSTANT
{
$$ = make_node(scanner, NODE_UNARY_EXPRESSION);
{
$$ = make_node(scanner, NODE_STRUCT);
$$->u._struct.has_body = 1;
{
$$ = make_node(scanner, NODE_STRUCT);
$$->u._struct.has_body = 1;
- if (set_parent_node($2, $$))
+ if ($2 && set_parent_node($2, $$))
reparent_error(scanner, "struct reparent error");
}
| IDENTIFIER struct_declaration_begin struct_or_variant_declaration_list struct_declaration_end
reparent_error(scanner, "struct reparent error");
}
| IDENTIFIER struct_declaration_begin struct_or_variant_declaration_list struct_declaration_end
$$ = make_node(scanner, NODE_STRUCT);
$$->u._struct.has_body = 1;
$$->u._struct.name = $1->s;
$$ = make_node(scanner, NODE_STRUCT);
$$->u._struct.has_body = 1;
$$->u._struct.name = $1->s;
- if (set_parent_node($3, $$))
+ if ($3 && set_parent_node($3, $$))
reparent_error(scanner, "struct reparent error");
}
| ID_TYPE struct_declaration_begin struct_or_variant_declaration_list struct_declaration_end
reparent_error(scanner, "struct reparent error");
}
| ID_TYPE struct_declaration_begin struct_or_variant_declaration_list struct_declaration_end
$$ = make_node(scanner, NODE_STRUCT);
$$->u._struct.has_body = 1;
$$->u._struct.name = $1->s;
$$ = make_node(scanner, NODE_STRUCT);
$$->u._struct.has_body = 1;
$$->u._struct.name = $1->s;
- if (set_parent_node($3, $$))
+ if ($3 && set_parent_node($3, $$))
reparent_error(scanner, "struct reparent error");
}
| IDENTIFIER
reparent_error(scanner, "struct reparent error");
}
| IDENTIFIER
{
$$ = make_node(scanner, NODE_VARIANT);
$$->u.variant.has_body = 1;
{
$$ = make_node(scanner, NODE_VARIANT);
$$->u.variant.has_body = 1;
- if (set_parent_node($2, $$))
+ if ($2 && set_parent_node($2, $$))
reparent_error(scanner, "variant reparent error");
}
| LT IDENTIFIER GT variant_declaration_begin struct_or_variant_declaration_list variant_declaration_end
reparent_error(scanner, "variant reparent error");
}
| LT IDENTIFIER GT variant_declaration_begin struct_or_variant_declaration_list variant_declaration_end
$$ = make_node(scanner, NODE_VARIANT);
$$->u.variant.has_body = 1;
$$->u.variant.choice = $2->s;
$$ = make_node(scanner, NODE_VARIANT);
$$->u.variant.has_body = 1;
$$->u.variant.choice = $2->s;
- if (set_parent_node($5, $$))
+ if ($5 && set_parent_node($5, $$))
reparent_error(scanner, "variant reparent error");
}
| LT ID_TYPE GT variant_declaration_begin struct_or_variant_declaration_list variant_declaration_end
reparent_error(scanner, "variant reparent error");
}
| LT ID_TYPE GT variant_declaration_begin struct_or_variant_declaration_list variant_declaration_end
$$ = make_node(scanner, NODE_VARIANT);
$$->u.variant.has_body = 1;
$$->u.variant.choice = $2->s;
$$ = make_node(scanner, NODE_VARIANT);
$$->u.variant.has_body = 1;
$$->u.variant.choice = $2->s;
- if (set_parent_node($5, $$))
+ if ($5 && set_parent_node($5, $$))
reparent_error(scanner, "variant reparent error");
}
| IDENTIFIER variant_declaration_begin struct_or_variant_declaration_list variant_declaration_end
reparent_error(scanner, "variant reparent error");
}
| IDENTIFIER variant_declaration_begin struct_or_variant_declaration_list variant_declaration_end
$$ = make_node(scanner, NODE_VARIANT);
$$->u.variant.has_body = 1;
$$->u.variant.name = $1->s;
$$ = make_node(scanner, NODE_VARIANT);
$$->u.variant.has_body = 1;
$$->u.variant.name = $1->s;
- if (set_parent_node($3, $$))
+ if ($3 && set_parent_node($3, $$))
reparent_error(scanner, "variant reparent error");
}
| IDENTIFIER LT IDENTIFIER GT variant_declaration_begin struct_or_variant_declaration_list variant_declaration_end
reparent_error(scanner, "variant reparent error");
}
| IDENTIFIER LT IDENTIFIER GT variant_declaration_begin struct_or_variant_declaration_list variant_declaration_end
$$->u.variant.has_body = 1;
$$->u.variant.name = $1->s;
$$->u.variant.choice = $3->s;
$$->u.variant.has_body = 1;
$$->u.variant.name = $1->s;
$$->u.variant.choice = $3->s;
- if (set_parent_node($6, $$))
+ if ($6 && set_parent_node($6, $$))
reparent_error(scanner, "variant reparent error");
}
| IDENTIFIER LT IDENTIFIER GT
reparent_error(scanner, "variant reparent error");
}
| IDENTIFIER LT IDENTIFIER GT
$$->u.variant.has_body = 1;
$$->u.variant.name = $1->s;
$$->u.variant.choice = $3->s;
$$->u.variant.has_body = 1;
$$->u.variant.name = $1->s;
$$->u.variant.choice = $3->s;
- if (set_parent_node($6, $$))
+ if ($6 && set_parent_node($6, $$))
reparent_error(scanner, "variant reparent error");
}
| IDENTIFIER LT ID_TYPE GT
reparent_error(scanner, "variant reparent error");
}
| IDENTIFIER LT ID_TYPE GT
$$ = make_node(scanner, NODE_VARIANT);
$$->u.variant.has_body = 1;
$$->u.variant.name = $1->s;
$$ = make_node(scanner, NODE_VARIANT);
$$->u.variant.has_body = 1;
$$->u.variant.name = $1->s;
- if (set_parent_node($3, $$))
+ if ($3 && set_parent_node($3, $$))
reparent_error(scanner, "variant reparent error");
}
| ID_TYPE LT IDENTIFIER GT variant_declaration_begin struct_or_variant_declaration_list variant_declaration_end
reparent_error(scanner, "variant reparent error");
}
| ID_TYPE LT IDENTIFIER GT variant_declaration_begin struct_or_variant_declaration_list variant_declaration_end
$$->u.variant.has_body = 1;
$$->u.variant.name = $1->s;
$$->u.variant.choice = $3->s;
$$->u.variant.has_body = 1;
$$->u.variant.name = $1->s;
$$->u.variant.choice = $3->s;
- if (set_parent_node($6, $$))
+ if ($6 && set_parent_node($6, $$))
reparent_error(scanner, "variant reparent error");
}
| ID_TYPE LT IDENTIFIER GT
reparent_error(scanner, "variant reparent error");
}
| ID_TYPE LT IDENTIFIER GT
$$->u.variant.has_body = 1;
$$->u.variant.name = $1->s;
$$->u.variant.choice = $3->s;
$$->u.variant.has_body = 1;
$$->u.variant.name = $1->s;
$$->u.variant.choice = $3->s;
- if (set_parent_node($6, $$))
+ if ($6 && set_parent_node($6, $$))
reparent_error(scanner, "variant reparent error");
}
| ID_TYPE LT ID_TYPE GT
reparent_error(scanner, "variant reparent error");
}
| ID_TYPE LT ID_TYPE GT
+typealias integer { size = 32; align = 32; signed = true; } : int;
+typealias integer { size = 64; align = 64; signed = true; } : long;
+typealias integer { size = 64; align = 64; } : unsigned long;
+
+enum name1 <int> {
-enum name <long> { ONE, TWO };
+enum name2 <long> { ONE, TWO };
-enum name <unsigned long> { ONE, TWO };
+enum name3 <unsigned long> { ONE, TWO };
-enum name <unsigned long> {
+enum name4 <unsigned long> {
string = 1 ... 2,
"other string" = 3...4,
yet_another_string, /* will be assigned to end_value2 + 1 */
"some other string" = 10,
};
string = 1 ... 2,
"other string" = 3...4,
yet_another_string, /* will be assigned to end_value2 + 1 */
"some other string" = 10,
};
-enum name <long> { "int" = 1, };
+enum name5 <long> { "int" = 1, };
typealias floating_point {
exp_dig = 8; /* sizeof(float) * CHAR_BIT - FLT_MANT_DIG */
typealias floating_point {
exp_dig = 8; /* sizeof(float) * CHAR_BIT - FLT_MANT_DIG */
typealias integer {
size = 32;
align = 32;
typealias integer {
size = 32;
align = 32;
+trace {
+ major = 66;
+ minor = 2;
+ uuid = "1123fcea-706e-11e0-a38b-f3c28a683a3d";
+ word_size = 64;
+};
+
stream {
typealias integer { size = 64; align = 64; signed = false; } : uint64_t;
typealias integer { size = 16; align = 16; signed = false; } : uint16_t;
stream {
typealias integer { size = 64; align = 64; signed = false; } : uint64_t;
typealias integer { size = 16; align = 16; signed = false; } : uint16_t;
- short a:12;
- short b:5;
+ /* TODO gcc bitfields not supported yet. */
+ /* short a:12;
+ short b:5; */
typedef int rootscopetest;
typedef int rootscopetest;
-event { a.b.c.d.e = f.g.h->i->j; };
+/* parser level only: event { a.b.c.d.e = f.g.h->i->j; }; */
+
+event {
+ name = test_event;
+ id = 0;
+ stream_id = 5;
+ context := struct {};
+ payload := struct {};
+};
typealias integer { size = 32; align = 32; signed = false; } : unsigned long long *;
typealias integer { size = 32; align = 32; signed = false; } : unsigned long long *;
&node->u.integer.expressions, trace);
case TYPESPEC_STRING:
return ctf_declaration_string_visit(fd, depth,
&node->u.integer.expressions, trace);
case TYPESPEC_STRING:
return ctf_declaration_string_visit(fd, depth,
- &first->u.string.expressions, trace);
+ &node->u.string.expressions, trace);
case TYPESPEC_STRUCT:
return ctf_declaration_struct_visit(fd, depth,
node->u._struct.name,
case TYPESPEC_STRUCT:
return ctf_declaration_struct_visit(fd, depth,
node->u._struct.name,
+ if (!trace->streams) {
+ fprintf(fd, "[error] %s: missing trace declaration\n", __func__);
+ return -EINVAL;
+ }
cds_list_for_each_entry(iter, &node->u.root.stream, siblings) {
ret = ctf_stream_visit(fd, depth + 1, iter,
trace->root_declaration_scope, trace);
cds_list_for_each_entry(iter, &node->u.root.stream, siblings) {
ret = ctf_stream_visit(fd, depth + 1, iter,
trace->root_declaration_scope, trace);