<commit_before>%{
#include <stdio.h>

#include "scan.h"
#include "util/list.h"
%}

%union
{
    char *str;
    List *list;
    void *ptr;
}

%start input

%token DEFINE PROGRAM OLG_EOF
%token <str> IDENT ICONST FCONST SCONST

%type <str>     program_header
%type <list>    program_body
%type <ptr>     clause

%%
input: program_header program_body OLG_EOF {};

program_header: PROGRAM IDENT { $$ = $2; };

program_body: clause program_body { $$ = NULL; }
| /* EMPTY */ { $$ = NULL; }
;

clause: IDENT { $$ = $1; };
%%

int
yyerror(const char *message)
{
    return 1;
}<commit_msg>Tweaks.<commit_after>%{
#include <stdio.h>

#include "scan.h"
#include "util/list.h"

int yyerror(const char *message);
%}

%union
{
    char *str;
    List *list;
    void *ptr;
}

%start input

%token DEFINE PROGRAM OLG_EOF
%token <str> IDENT ICONST FCONST SCONST

%type <str>     program_header
%type <list>    program_body
%type <ptr>     clause

%%
input: program_header program_body OLG_EOF {};

program_header: PROGRAM IDENT { $$ = $2; };

program_body: clause program_body { $$ = NULL; }
| /* EMPTY */ { $$ = NULL; }
;

clause: IDENT { $$ = $1; };
%%

int
yyerror(const char *message)
{
    printf("Parse error: %s\n", message);
    return 1;
}
{'fraction_non_alphanumeric': 0.16382806163828062, 'fraction_numerical': 0.004866180048661801, 'mean_word_length': 3.536764705882353, 'pattern_counts': {'":': 0, '<': 13, '<?xml version=': 0, '>': 13, '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': '7429082', 'n_tokens_mistral': 494, 'n_tokens_neox': 485, 'n_words': 124}