<commit_before>#ifndef LILY_AST_H
# define LILY_AST_H

#include "lily_lexer.h"
#include "lily_symtab.h"

/* Based off of http://lambda.uta.edu/cse5317/notes/node25.html. */
struct lily_ast_list;

typedef enum {
    expr_assign
} lily_expr_op;

typedef struct lily_ast_ {
    enum {
        func_call, var, binary
    } expr_type;
    lily_object *result;
    union {
        lily_object *object;
        struct {
            lily_symbol *sym;
            int num_args;
            struct lily_ast_list *args;
        } call;
        struct lily_bin_expr {
            int priority;
            lily_expr_op op;
            struct lily_ast_ *left;
            struct lily_ast_ *right;
            struct lily_ast_ *parent;
        } bin_expr;
    } data;
} lily_ast;

struct lily_ast_list {
    lily_ast *ast;<commit_msg>Change lily_ast_ to lily_ast_t for consistency.<commit_after>#ifndef LILY_AST_H
# define LILY_AST_H

#include "lily_lexer.h"
#include "lily_symtab.h"

/* Based off of http://lambda.uta.edu/cse5317/notes/node25.html. */
struct lily_ast_list;

typedef enum {
    expr_assign
} lily_expr_op;

typedef struct lily_ast_t {
    enum {
        func_call, var, binary
    } expr_type;
    lily_object *result;
    union {
        lily_object *object;
        struct {
            lily_symbol *sym;
            int num_args;
            struct lily_ast_list *args;
        } call;
        struct lily_bin_expr {
            int priority;
            lily_expr_op op;
            struct lily_ast_t *left;
            struct lily_ast_t *right;
            struct lily_ast_t *parent;
        } bin_expr;
    } data;
} lily_ast;

struct lily_ast_list {
    lily_ast *ast;
{'fraction_non_alphanumeric': 0.08164481525625746, 'fraction_numerical': 0.007151370679380214, 'mean_word_length': 2.1035120147874307, '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': '2294848', 'n_tokens_mistral': 617, 'n_tokens_neox': 597, 'n_words': 128}