<commit_before>exc
===

exc is Extensible C, a system for syntactic C language extensions. exc code
compiles to C code. Moreover, exc code /is/ C code, but with a syntactic
"escape", the @ symbol, which provides a very broad syntax for modular syntax
transformations to use as a basis. The syntactic escapes are called
"decorations" or "decorators".

The concept is simple: Need a way of annotating particular references for an
automatic reference counter[1]? Add a `@rc` type syntax extension and generate
the reference counting code when it's encountered. Need a simple syntax for
accessing members of dynamic objects in your C-based domain-specific language?
How about an `@.` operator? Anything you can write as a *syntactic* transform
over regular C code can be written as an extension in exc.

Because @ is not used in normal C, it is perfectly unambiguous with
conventional C code. In fact, conventional C code can be compiled with exc
flawlessly[2]. The purpose of exc is not to replace C, only to extend it.

[1] Not that this is a good idea.

[2] exc is preprocessed, like C, but because preprocessing includes all
    #included headers, the result is usually not portable. To add the *option*
    of generating portable C code, the built-in decoration @include is
    supported. Using @include is obviously a change from conventional C code,
    but it's strictly optional: exc code which uses traditional #include for
    system headers works fine and is itself portable, it simply generates
    unportable C code in the compilation process.<commit_msg>Fixing some README ugliness.<commit_after>exc
===

exc is Extensible C, a system for syntactic C language extensions. exc code
compiles to C code. Moreover, exc code /is/ C code, but with a syntactic
"escape", the @ symbol, which provides a very broad syntax for modular syntax
transformations to use as a basis. The syntactic escapes are called
"decorations" or "decorators".

The concept is simple: Need a way of annotating particular references for an
automatic reference counter[1]? Add a `@rc` type syntax extension and generate
the reference counting code when it's encountered. Need a simple syntax for
accessing members of dynamic objects in your C-based domain-specific language?
How about an `@.` operator? Anything you can write as a *syntactic* transform
over regular C code can be written as an extension in exc.

Because @ is not used in normal C, it is perfectly unambiguous with
conventional C code. In fact, conventional C code can be compiled with exc
flawlessly[2]. The purpose of exc is not to replace C, only to extend it.

[1] Not that this is a good idea.

[2] exc is preprocessed, like C, but because preprocessing includes all
    #included headers, the result is usually not portable. To add the *option*
    of generating portable C code, the built-in decoration `@include` is
    supported. Using `@include` is obviously a change from conventional C code,
    but it's strictly optional: exc code which uses traditional #include for
    system headers works fine and is itself portable, it simply generates
    unportable C code in the compilation process.
{'fraction_non_alphanumeric': 0.04985709749126707, 'fraction_numerical': 0.0025404890441409972, 'mean_word_length': 4.294117647058823, 'pattern_counts': {'":': 0, '<': 3, '<?xml version=': 0, '>': 3, 'https://': 0, 'lorem ipsum': 0, 'www.': 0, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 0, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'dir': 'git-commits-cleaned', 'id': '546867', 'n_tokens_mistral': 793, 'n_tokens_neox': 765, 'n_words': 490}