<commit_before>#ifndef SMOKE_H
#define SMOKE_H

#include <string.h>

/*
 *   Copyright (C) 2002, <NAME> <<EMAIL>>
 */

class SmokeBinding;

class Smoke {
public:
    union StackItem; // defined below
    typedef StackItem* Stack;

    typedef short Index;
    typedef void (*ClassFn)(Index method, void* obj, Stack args); // was Stack * (DF)
    typedef void* (*CastFn)(void* obj, Index from, Index to);

    /**
     * Describe one class.
     */
    struct Class {
	const char *className;	// Name of the class
	Index parents;		// Index into inheritanceList
	ClassFn classFn;	// Calls any method in the class
    };

    enum MethodFlags {
        mf_static = 0x01,
        mf_const = 0x02
    };
    /**
     * Describe one method of one class.
     */
    struct Method {
	Index classId;		// Index into classes
	Index name;		// Index into methodNames; real name
	Index args;		// Index into argumentList
	unsigned char numArgs;	// Number of arguments
	unsigned char flags;	// MethodFlags (const/static/etc...)
	Index ret;		// Index into types for the return type<commit_msg>Enum pointer handling declarations<commit_after>#ifndef SMOKE_H
#define SMOKE_H

#include <string.h>

/*
 *   Copyright (C) 2002, <NAME> <<EMAIL>>
 */

class SmokeBinding;

class Smoke {
public:
    union StackItem; // defined below
    typedef StackItem* Stack;

    enum EnumOperation {
	EnumNew,
	EnumDelete,
	EnumFromLong,
	EnumToLong
    };

    typedef short Index;
    typedef void (*ClassFn)(Index method, void* obj, Stack args); // was Stack * (DF)
    typedef void* (*CastFn)(void* obj, Index from, Index to);
    typedef void (*EnumFn)(EnumOperation, Index, void*&, long&);

    /**
     * Describe one class.
     */
    struct Class {
	const char *className;	// Name of the class
	Index parents;		// Index into inheritanceList
	ClassFn classFn;	// Calls any method in the class
	EnumFn enumFn;		// Handles enum pointers
    };

    enum MethodFlags {
        mf_static = 0x01,
        mf_const = 0x02
    };
    /**
     * Describe one method of one class.
     */
    struct Method {
	Index classId;		// Index into classes
	Index name;		// Index into methodNames; real name
	Index args;		// Index into argumentList
	unsigned char numArgs;	// Number of arguments
	unsigned char flags;	// MethodFlags (const/static/etc...)
	Index ret;		// Index into types for the return type
{'fraction_non_alphanumeric': 0.1070672873465933, 'fraction_numerical': 0.008463817181548879, 'mean_word_length': 2.734597156398104, 'pattern_counts': {'":': 0, '<': 11, '<?xml version=': 0, '>': 11, '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': '6040384', 'n_tokens_mistral': 759, 'n_tokens_neox': 731, 'n_words': 261}