Docs.rs
cgrammar-0.9.1
Platform
x86_64-unknown-linux-gnu
Feature flags
docs.rs
About docs.rs
Badges
Builds
Metadata
Shorthand URLs
Download
Rustdoc JSON
Build queue
Privacy policy
Rust
Rust website
The Book
Standard Library API Reference
Rust by Example
The Cargo Guide
Clippy Documentation
cgrammar 0.9.1
A comprehensive C language grammar parser library written in Rust, implementing the C23 standard (ISO/IEC 9899:2023).
Crate
Source
Builds
Feature flags
Documentation
Hide files
..
_Lengthof.c
array_init_size_diagnostic.c
binary_constant.c
c11_alignas_alignof.c
c11_anonymous_struct_union.c
c11_atomic_types.c
c11_complex_numbers.c
c11_generic_advanced.c
c11_noreturn.c
c11_static_assert.c
c11_thread_local.c
c23_attributes.c
c23_auto_type.c
c23_binary_constants.c
c23_bitint_types.c
c23_constexpr.c
c23_decimal_types.c
c23_digit_separators.c
c23_empty_initializer.c
c23_enhanced_enumerations.c
c23_nullptr.c
c23_typeof_unqual.c
c23_unreachable.c
c99_bool_type.c
c99_compound_literals.c
c99_designated_initializers.c
c99_flexible_array_member.c
c99_inline_functions.c
c99_mixed_declarations.c
c99_restrict_qualifier.c
c99_vla_edge_cases.c
char_literal_types.c
char_literal_values.c
digit_separator.c
duplicated_declarator_error.c
duplicated_tag_error.c
edge_anonymous_types.c
edge_asm_statements.c
edge_cast_expressions.c
edge_character_literals.c
edge_complex_declarations.c
edge_complex_expressions.c
edge_control_flow.c
edge_dollar_in_identifiers.c
edge_empty_statements.c
edge_float_literals.c
edge_imaginary_numbers.c
edge_implicit_int.c
edge_initialization.c
edge_integer_literals.c
edge_long_names.c
edge_macro_heavy.c
edge_nested_structures.c
edge_pointer_arithmetic.c
edge_preprocessor_syntax.c
edge_sizeof_alignof.c
edge_statement_expressions.c
edge_string_literals.c
edge_trigraphs.c
edge_typedef_chains.c
edge_unicode_identifiers.c
edge_wide_chars.c
extern_incomplete_struct.c
flow_address_of.c
flow_always_null_check.c
flow_and.c
flow_and_expr.c
flow_and_func.c
flow_and_or_expr.c
flow_and_ptr.c
flow_assert_func2.c
flow_assert_function.c
flow_assigment_inside_expr.c
flow_assignment_compound.c
flow_calloc.c
flow_calloc2.c
flow_circular_refs.c
flow_const_arg.c
flow_const_arg2.c
flow_default_init.c
flow_default_init_notnull.c
flow_delete_destroy.c
flow_destroy_opt.c
flow_destructor.c
flow_div_by_zero.c
flow_div_by_zero2.c
flow_do_while.c
flow_else.c
flow_empty_init.c
flow_extern_var.c
flow_for_loop.c
flow_for_loop_j.c
flow_for_return.c
flow_free_moved.c
flow_function_call_order.c
flow_if_else.c
flow_if_else2.c
flow_if_else3.c
flow_if_ptr_if_ptr.c
flow_if_return_else.c
flow_if_return_else_return.c
flow_if_throw.c
flow_initialization_leak.c
flow_initialization_move.c
flow_inside_if.c
flow_int_owner.c
flow_leak_assigment.c
flow_leak_else.c
flow_leak_goto.c
flow_leak_goto2.c
flow_leak_if.c
flow_leak_member.c
flow_leak_non_pointer.c
flow_leak_struct.c
flow_lifetime_ended.c
flow_linked_list_destroy.c
flow_linked_list_push.c
flow_list.c
flow_lvalue_error3.c
flow_malloc.c
flow_malloc_init.c
flow_maybe_moved.c
flow_maybe_uninitialized.c
flow_maybe_unitialized.c
flow_missing_cleanup_dtor.c
flow_move_inside_if.c
flow_move_return.c
flow_move_struct_arg.c
flow_moved.c
flow_no_leak.c
flow_no_leak2.c
flow_no_leak_delete.c
flow_no_leak_malloc.c
flow_no_leak_struct.c
flow_no_return.c
flow_non_const_arg.c
flow_non_const_arg2.c
flow_non_nullable_arg.c
flow_non_nullable_arg2.c
flow_non_nullable_return.c
flow_non_owner_to_owner.c
flow_non_owner_to_owner2.c
flow_non_pointer_owner.c
flow_non_ptr_owner2.c
flow_non_used_arg.c
flow_not_expr.c
flow_not_null_check.c
flow_null_check.c
flow_null_deref2.c
flow_null_deref3.c
flow_null_else.c
flow_nullable1.c
flow_nullable_arg.c
flow_nullable_arg2.c
flow_nullable_deref.c
flow_nullable_disable.c
flow_nullable_inside_if.c
flow_nullable_member.c
flow_nullable_pointer_init.c
flow_nullable_to_nonnullable.c
flow_opt_dtor.c
flow_optional_owner_pointer.c
flow_or_operator.c
flow_out.c
flow_out2.c
flow_out_arg.c
flow_out_array.c
flow_out_init.c
flow_owner_get.c
flow_owner_get2.c
flow_owner_increment.c
flow_owner_null_init.c
flow_owner_to_owner2.c
flow_owner_to_owner_arg.c
flow_parameter_ifs.c
flow_pointer_out.c
flow_pointer_to_func_owner.c
flow_redundant_if.c
flow_return_after_free.c
flow_return_global_owner.c
flow_return_owner_to_non_owner.c
flow_return_owner_to_view.c
flow_returning_struct.c
flow_returning_struct_from_func.c
flow_simple.c
flow_struct_arg.c
flow_struct_assigment.c
flow_switch.c
flow_switch2.c
flow_switch3.c
flow_switch4.c
flow_switch_4.c
flow_switch_5.c
flow_temp_owner.c
flow_temp_owner2.c
flow_temp_struct.c
flow_ternary.c
flow_ternary2.c
flow_trow.c
flow_try_catch_leak.c
flow_try_catch_while.c
flow_unchanged_pointer.c
flow_uninitialized.c
flow_uninitialized_array.c
flow_uninitialized_malloc.c
flow_uninitialized_struct.c
flow_unitialized2.c
flow_use_affter_free.c
flow_value.c
flow_view_member.c
flow_view_qualifier.c
flow_void_ptr_leak.c
flow_while2.c
gen_c99_bool.c
gen_c99_bool.c_generated.c
hex_value.c
incomplete_struct_forward.c
incomplete_tentative_definition.c
initialization_array_follow.c
initialization_array_inside_struct.c
initialization_array_inside_struct_2.c
initialization_array_inside_union.c
initialization_array_of_array.c
initialization_arrays.c
initialization_char_array.c
initialization_const_from_non_const.c
initialization_simple.c
initialization_simple_array.c
initialization_simple_array_no_size.c
initialization_simple_struct_struct.c
initialization_union_anonymous.c
initialization_union_inside_struct.c
initializer_array_designator.c
initializer_array_of_strings.c
initializer_compatible_struct.c
initializer_complex_array1.c
initializer_complex_array2.c
initializer_complex_array3.c
initializer_complex_array4.c
initializer_invalid_designator.c
initializer_literal_string_array.c
initializer_mix.c
initializer_out_of_order_array.c
initializer_simple_anonymous_struct.c
initializer_simple_string.c
initializer_string_inside_struct.c
initializer_struct_follow.c
initializer_too_many.c
integer_promotion.c
literal_constant_type.c
long_double_suffix.c
multichar.c
octal_suffix.c
parser_and_or_evaluation.c
parser_anonimous2.c
parser_attr_keyword.c
parser_auto_ptr.c
parser_char_lit.c
parser_conditional_expr.c
parser_const_init_warning.c
parser_diferent_enuns_type.c
parser_discard_qualifiers.c
parser_div_by_zero.c
parser_duplicated_case.c
parser_enum_case_mix.c
parser_enum_not_handled_switch.c
parser_enum_size.c
parser_error_function_returning_array_func.c
parser_false_as_null.c
parser_func.c
parser_generic.c
parser_if_init.c
parser_if_init2.c
parser_if_init3.c
parser_if_with_initializer_flow.c
parser_label_duplicated.c
parser_label_missing.c
parser_label_unused.c
parser_lvalue_error.c
parser_lvalue_error2.c
parser_null_to_bool.c
parser_out_of_bound_arg.c
parser_out_of_bounds.c
parser_return_error.c
parser_same_tag_another_scope.c
parser_same_tag_another_scope2.c
parser_same_tag_another_scope3.c
parser_same_tag_another_scope4.c
parser_sizeof_array_parameter.c
parser_struct_inside_union.c
pre_if_line.c
sizeof_array.c
sizeof_array_func.c
sizeof_literal_string.c
sizeof_not_computed.c
sizeof_struct.c
sizeof_struct2.c
sizeof_test.c
sizeof_union.c
sizeof_union2.c
source_code_not_ending_newline.c
syntax_enums_advanced.c
syntax_function_edge_cases.c
syntax_storage_classes.c
syntax_type_qualifiers.c
traits.c
traits2.c
type_address_of_array.c
type_array_plus_int.c
type_auto_and_const.c
type_complicate_declarations2.c
type_complicated_declaration.c
type_complicated_declarations.c
type_const_in_generic.c
type_decrement.c
type_double_int.c
type_extra_parentesis.c
type_function_array.c
type_function_ptr.c
type_functions.c
type_generic_const.c
type_is_owner.c
type_not.c
type_pointer_array.c
type_pointer_plus_int.c
type_pointer_to_array.c
type_pointer_to_function_pointer.c
type_sizeof_string.c
type_struct_comparison.c
type_suffix.c
type_traits2.c
type_typeof_literal_string.c
type_typeof_wlit.c
u8_literal.c
variable_arguments.c
wrong_specifiers.c
1
2
3
4
5
int
main
(
)
{
static_assert
(
_Generic
(
typeof
(
__func__
)
,
const
char
[
5
]
:
1
,
default
:
0
)
)
;
}