xapian-core  2.0.0
Classes | Macros | Typedefs | Enumerations | Functions | Variables
header.h File Reference
#include <stdio.h>
+ Include dependency graph for header.h:

Go to the source code of this file.

Classes

struct  m_pair
 
struct  input
 
struct  include
 
struct  tokeniser
 
struct  name
 
struct  literalstring
 
struct  amongvec
 
struct  among
 
struct  grouping
 
struct  node
 
struct  analyser
 
struct  generator
 
struct  options
 

Macros

#define SNOWBALL_VERSION   "3.0.0"
 
#define true   1
 
#define false   0
 
#define MALLOC   check_malloc
 
#define FREE   check_free
 
#define NEW(TYPE, V)   struct TYPE * V = (struct TYPE *) MALLOC(sizeof(struct TYPE))
 
#define NEWVEC(TYPE, V, N)   struct TYPE * V = (struct TYPE *) MALLOC(sizeof(struct TYPE) * (N))
 
#define SIZE(p)   ((const int *)(p))[-1]
 
#define SET_SIZE(p, n)   ((int *)(p))[-1] = (n)
 
#define ADD_TO_SIZE(p, n)   ((int *)(p))[-1] += (n)
 
#define CAPACITY(p)   ((int *)(p))[-2]
 
#define add_literal_to_s(P, LIT)   add_slen_to_s(P, "" LIT, sizeof(LIT) - 1)
 
#define hold_token(T)   ((T)->token_held = true)
 

Typedefs

typedef unsigned char byte
 
typedef unsigned short symbol
 

Enumerations

enum  enc { ENC_SINGLEBYTE = 0 , ENC_UTF8 , ENC_WIDECHARS }
 
enum  token_codes {
  c_gt = 0 , c_le , c_ge , c_lt ,
  c_eq , c_ne , c_among , c_and ,
  c_as , c_assign , c_assignto , c_atleast ,
  c_atlimit , c_atmark , c_attach , c_backwardmode ,
  c_backwards , c_booleans , c_bra , c_comment1 ,
  c_comment2 , c_cursor , c_debug , c_decimal ,
  c_define , c_delete , c_divide , c_divideassign ,
  c_do , c_dollar , c_externals , c_fail ,
  c_false , c_for , c_get , c_gopast ,
  c_goto , c_groupings , c_hex , c_hop ,
  c_insert , c_integers , c_ket , c_leftslice ,
  c_len , c_lenof , c_limit , c_loop ,
  c_maxint , c_minint , c_minus , c_minusassign ,
  c_multiply , c_multiplyassign , c_next , c_non ,
  c_not , c_or , c_plus , c_plusassign ,
  c_repeat , c_reverse , c_rightslice , c_routines ,
  c_set , c_setlimit , c_setmark , c_size ,
  c_sizeof , c_slicefrom , c_sliceto , c_stringdef ,
  c_stringescapes , c_strings , c_substring , c_test ,
  c_tolimit , c_tomark , c_true , c_try ,
  c_unset , c_name , c_number , c_literalstring ,
  c_mathassign , c_neg , c_call , c_grouping ,
  c_booltest , c_functionend , c_goto_grouping , c_gopast_grouping ,
  c_goto_non , c_gopast_non , c_not_booltest , NUM_TOKEN_CODES
}
 
enum  uplus_modes { UPLUS_NONE = 0 , UPLUS_DEFINED , UPLUS_UNICODE }
 
enum  name_types {
  t_size = 6 , t_string = 0 , t_boolean = 1 , t_integer = 2 ,
  t_routine = 3 , t_external = 4 , t_grouping = 5
}
 
enum  analyser_modes { m_forward = 0 , m_backward , m_unknown }
 
enum  special_labels { x_return = -1 }
 

Functions

symbolcreate_b (int n)
 
void report_b (FILE *out, const symbol *p)
 
void lose_b (symbol *p)
 
symbolincrease_capacity_b (symbol *p, int n)
 
symboladd_to_b (symbol *p, const symbol *q, int n)
 
symbolcopy_b (const symbol *p)
 
char * b_to_sz (const symbol *p)
 
symboladd_symbol_to_b (symbol *p, symbol ch)
 
bytecreate_s (int n)
 
bytecreate_s_from_sz (const char *s)
 
bytecreate_s_from_data (const char *s, int n)
 
void report_s (FILE *out, const byte *p)
 
void lose_s (byte *p)
 
byteincrease_capacity_s (byte *p, int n)
 
byteensure_capacity_s (byte *p, int n)
 
bytecopy_s (const byte *p)
 
byteadd_s_to_s (byte *p, const byte *s)
 
byteadd_slen_to_s (byte *p, const char *s, int n)
 
byteadd_sz_to_s (byte *p, const char *s)
 
byteadd_char_to_s (byte *p, char ch)
 
struct str * str_new (void)
 
void str_delete (struct str *str)
 
void str_append (struct str *str, const struct str *add)
 
void str_append_ch (struct str *str, char add)
 
void str_append_s (struct str *str, const byte *q)
 
void str_append_string (struct str *str, const char *s)
 
void str_append_int (struct str *str, int i)
 
void str_append_wchar_as_utf8 (struct str *str, symbol ch)
 
void str_clear (struct str *str)
 
void str_assign (struct str *str, const char *s)
 
struct str * str_copy (const struct str *old)
 
bytestr_data (const struct str *str)
 
int str_len (const struct str *str)
 
int str_back (const struct str *str)
 
void str_pop (const struct str *str)
 
void str_pop_n (const struct str *str, int n)
 
void output_str (FILE *outfile, struct str *str)
 
int get_utf8 (const symbol *p, int *slot)
 
int put_utf8 (int ch, symbol *p)
 
byteget_input (const char *filename)
 
struct tokenisercreate_tokeniser (byte *b, char *file)
 
int read_token (struct tokeniser *t)
 
int peek_token (struct tokeniser *t)
 
const char * name_of_token (int code)
 
void disable_token (struct tokeniser *t, int code)
 
void close_tokeniser (struct tokeniser *t)
 
void * check_malloc (size_t n)
 
void check_free (void *p)
 
void print_program (struct analyser *a)
 
struct analysercreate_analyser (struct tokeniser *t)
 
void close_analyser (struct analyser *a)
 
void read_program (struct analyser *a, unsigned localise_mask)
 Read and analyse the program. More...
 
struct generatorcreate_generator (struct analyser *a, struct options *o)
 
void close_generator (struct generator *g)
 
void write_char (struct generator *g, int ch)
 
void write_newline (struct generator *g)
 
void write_string (struct generator *g, const char *s)
 
void write_wchar_as_utf8 (struct generator *g, symbol ch)
 
void write_int (struct generator *g, int i)
 
void write_hex4 (struct generator *g, int ch)
 
void write_symbol (struct generator *g, symbol s)
 
void write_s (struct generator *g, const byte *b)
 
void write_str (struct generator *g, struct str *str)
 
void write_c_relop (struct generator *g, int relop)
 
void write_comment_content (struct generator *g, struct node *p, const char *end)
 
void write_generated_comment_content (struct generator *g)
 
void write_start_comment (struct generator *g, const char *comment_start, const char *comment_end)
 
int K_needed (struct generator *g, struct node *p)
 
int repeat_restore (struct generator *g, struct node *p)
 
int just_return_on_fail (struct generator *g)
 
int tailcallable (struct generator *g, struct node *p)
 
void generate_program_c (struct generator *g)
 
void generate_program_java (struct generator *g)
 
void generate_program_dart (struct generator *g)
 
void generate_program_csharp (struct generator *g)
 
void generate_program_pascal (struct generator *g)
 
void generate_program_php (struct generator *g)
 
void generate_program_python (struct generator *g)
 
void generate_program_js (struct generator *g)
 
void generate_program_rust (struct generator *g)
 
void generate_program_go (struct generator *g)
 
void generate_program_ada (struct generator *g)
 

Variables

int space_count
 

Macro Definition Documentation

◆ add_literal_to_s

#define add_literal_to_s (   P,
  LIT 
)    add_slen_to_s(P, "" LIT, sizeof(LIT) - 1)

Definition at line 51 of file header.h.

◆ ADD_TO_SIZE

#define ADD_TO_SIZE (   p,
 
)    ((int *)(p))[-1] += (n)

Definition at line 23 of file header.h.

◆ CAPACITY

#define CAPACITY (   p)    ((int *)(p))[-2]

Definition at line 24 of file header.h.

◆ false

#define false   0

Definition at line 9 of file header.h.

◆ FREE

#define FREE   check_free

Definition at line 12 of file header.h.

◆ hold_token

#define hold_token (   T)    ((T)->token_held = true)

Definition at line 204 of file header.h.

◆ MALLOC

#define MALLOC   check_malloc

Definition at line 11 of file header.h.

◆ NEW

#define NEW (   TYPE,
 
)    struct TYPE * V = (struct TYPE *) MALLOC(sizeof(struct TYPE))

Definition at line 16 of file header.h.

◆ NEWVEC

#define NEWVEC (   TYPE,
  V,
 
)    struct TYPE * V = (struct TYPE *) MALLOC(sizeof(struct TYPE) * (N))

Definition at line 19 of file header.h.

◆ SET_SIZE

#define SET_SIZE (   p,
 
)    ((int *)(p))[-1] = (n)

Definition at line 22 of file header.h.

◆ SIZE

#define SIZE (   p)    ((const int *)(p))[-1]

Definition at line 21 of file header.h.

◆ SNOWBALL_VERSION

#define SNOWBALL_VERSION   "3.0.0"

Definition at line 3 of file header.h.

◆ true

#define true   1

Definition at line 8 of file header.h.

Typedef Documentation

◆ byte

typedef unsigned char byte

Definition at line 5 of file header.h.

◆ symbol

typedef unsigned short symbol

Definition at line 6 of file header.h.

Enumeration Type Documentation

◆ analyser_modes

Enumerator
m_forward 
m_backward 
m_unknown 

Definition at line 346 of file header.h.

◆ enc

enum enc
Enumerator
ENC_SINGLEBYTE 
ENC_UTF8 
ENC_WIDECHARS 

Definition at line 76 of file header.h.

◆ name_types

enum name_types
Enumerator
t_size 
t_string 
t_boolean 
t_integer 
t_routine 
t_external 
t_grouping 

Definition at line 309 of file header.h.

◆ special_labels

Enumerator
x_return 

Definition at line 399 of file header.h.

◆ token_codes

Enumerator
c_gt 
c_le 
c_ge 
c_lt 
c_eq 
c_ne 
c_among 
c_and 
c_as 
c_assign 
c_assignto 
c_atleast 
c_atlimit 
c_atmark 
c_attach 
c_backwardmode 
c_backwards 
c_booleans 
c_bra 
c_comment1 
c_comment2 
c_cursor 
c_debug 
c_decimal 
c_define 
c_delete 
c_divide 
c_divideassign 
c_do 
c_dollar 
c_externals 
c_fail 
c_false 
c_for 
c_get 
c_gopast 
c_goto 
c_groupings 
c_hex 
c_hop 
c_insert 
c_integers 
c_ket 
c_leftslice 
c_len 
c_lenof 
c_limit 
c_loop 
c_maxint 
c_minint 
c_minus 
c_minusassign 
c_multiply 
c_multiplyassign 
c_next 
c_non 
c_not 
c_or 
c_plus 
c_plusassign 
c_repeat 
c_reverse 
c_rightslice 
c_routines 
c_set 
c_setlimit 
c_setmark 
c_size 
c_sizeof 
c_slicefrom 
c_sliceto 
c_stringdef 
c_stringescapes 
c_strings 
c_substring 
c_test 
c_tolimit 
c_tomark 
c_true 
c_try 
c_unset 
c_name 
c_number 
c_literalstring 
c_mathassign 
c_neg 
c_call 
c_grouping 
c_booltest 
c_functionend 
c_goto_grouping 
c_gopast_grouping 
c_goto_non 
c_gopast_non 
c_not_booltest 
NUM_TOKEN_CODES 

Definition at line 106 of file header.h.

◆ uplus_modes

Enumerator
UPLUS_NONE 
UPLUS_DEFINED 
UPLUS_UNICODE 

Definition at line 150 of file header.h.

Function Documentation

◆ add_char_to_s()

byte* add_char_to_s ( byte p,
char  ch 
)

◆ add_s_to_s()

byte* add_s_to_s ( byte p,
const byte s 
)

◆ add_slen_to_s()

byte* add_slen_to_s ( byte p,
const char *  s,
int  n 
)

◆ add_symbol_to_b()

symbol* add_symbol_to_b ( symbol p,
symbol  ch 
)

◆ add_sz_to_s()

byte* add_sz_to_s ( byte p,
const char *  s 
)

◆ add_to_b()

symbol* add_to_b ( symbol p,
const symbol q,
int  n 
)

◆ b_to_sz()

char* b_to_sz ( const symbol p)

◆ check_free()

void check_free ( void *  p)

◆ check_malloc()

void* check_malloc ( size_t  n)

◆ close_analyser()

void close_analyser ( struct analyser a)

◆ close_generator()

void close_generator ( struct generator g)

◆ close_tokeniser()

void close_tokeniser ( struct tokeniser t)

◆ copy_b()

symbol* copy_b ( const symbol p)

◆ copy_s()

byte* copy_s ( const byte p)

◆ create_analyser()

struct analyser* create_analyser ( struct tokeniser t)

◆ create_b()

symbol* create_b ( int  n)

◆ create_generator()

struct generator* create_generator ( struct analyser a,
struct options o 
)

◆ create_s()

byte* create_s ( int  n)

Referenced by Xapian::Internal::Snowball::Arabic::Arabic(), Xapian::Internal::Snowball::Armenian::Armenian(), Xapian::Internal::Snowball::Basque::Basque(), Xapian::Internal::Snowball::Catalan::Catalan(), Xapian::Internal::Snowball::Danish::Danish(), Xapian::Internal::Snowball::Dutch::Dutch(), Xapian::Internal::Snowball::DutchPorter::DutchPorter(), Xapian::Internal::Snowball::Earlyenglish::Earlyenglish(), Xapian::Internal::Snowball::English::English(), Xapian::Internal::Snowball::Esperanto::Esperanto(), Xapian::Internal::Snowball::Estonian::Estonian(), Xapian::Internal::Snowball::Finnish::Finnish(), Xapian::Internal::Snowball::French::French(), Xapian::Internal::Snowball::German::German(), Xapian::Internal::Snowball::Greek::Greek(), Xapian::Internal::Snowball::Hindi::Hindi(), Xapian::Internal::Snowball::Hungarian::Hungarian(), Xapian::Internal::Snowball::Indonesian::Indonesian(), Xapian::Internal::Snowball::Irish::Irish(), Xapian::Internal::Snowball::Italian::Italian(), Xapian::Internal::Snowball::Lithuanian::Lithuanian(), Xapian::Internal::Snowball::Lovins::Lovins(), Xapian::Internal::Snowball::Nepali::Nepali(), Xapian::Internal::Snowball::Norwegian::Norwegian(), Xapian::Internal::Snowball::Polish::Polish(), Xapian::Internal::Snowball::Porter::Porter(), Xapian::Internal::Snowball::Portuguese::Portuguese(), Xapian::Internal::Snowball::Romanian::Romanian(), Xapian::Internal::Snowball::Russian::Russian(), Xapian::Internal::Snowball::Serbian::Serbian(), Xapian::Internal::Snowball::Spanish::Spanish(), Xapian::Internal::Snowball::Swedish::Swedish(), Xapian::Internal::Snowball::Tamil::Tamil(), Xapian::Internal::Snowball::Turkish::Turkish(), and Xapian::Internal::Snowball::Yiddish::Yiddish().

◆ create_s_from_data()

byte* create_s_from_data ( const char *  s,
int  n 
)

◆ create_s_from_sz()

byte* create_s_from_sz ( const char *  s)

◆ create_tokeniser()

struct tokeniser* create_tokeniser ( byte b,
char *  file 
)

◆ disable_token()

void disable_token ( struct tokeniser t,
int  code 
)

◆ ensure_capacity_s()

byte* ensure_capacity_s ( byte p,
int  n 
)

◆ generate_program_ada()

void generate_program_ada ( struct generator g)

◆ generate_program_c()

void generate_program_c ( struct generator g)

◆ generate_program_csharp()

void generate_program_csharp ( struct generator g)

◆ generate_program_dart()

void generate_program_dart ( struct generator g)

◆ generate_program_go()

void generate_program_go ( struct generator g)

◆ generate_program_java()

void generate_program_java ( struct generator g)

◆ generate_program_js()

void generate_program_js ( struct generator g)

◆ generate_program_pascal()

void generate_program_pascal ( struct generator g)

◆ generate_program_php()

void generate_program_php ( struct generator g)

◆ generate_program_python()

void generate_program_python ( struct generator g)

◆ generate_program_rust()

void generate_program_rust ( struct generator g)

◆ get_input()

byte* get_input ( const char *  filename)

◆ get_utf8()

int get_utf8 ( const symbol p,
int *  slot 
)

◆ increase_capacity_b()

symbol* increase_capacity_b ( symbol p,
int  n 
)

◆ increase_capacity_s()

byte* increase_capacity_s ( byte p,
int  n 
)

◆ just_return_on_fail()

int just_return_on_fail ( struct generator g)

◆ K_needed()

int K_needed ( struct generator g,
struct node p 
)

◆ lose_b()

void lose_b ( symbol p)

◆ lose_s()

void lose_s ( byte p)

Definition at line 38 of file utilities.cc.

References HEAD, and p.

Referenced by Xapian::Internal::Snowball::Arabic::close_env(), Xapian::Internal::Snowball::Armenian::close_env(), Xapian::Internal::Snowball::Basque::close_env(), Xapian::Internal::Snowball::Catalan::close_env(), Xapian::Internal::Snowball::Danish::close_env(), Xapian::Internal::Snowball::Dutch::close_env(), Xapian::Internal::Snowball::DutchPorter::close_env(), Xapian::Internal::Snowball::Earlyenglish::close_env(), Xapian::Internal::Snowball::English::close_env(), Xapian::Internal::Snowball::Esperanto::close_env(), Xapian::Internal::Snowball::Estonian::close_env(), Xapian::Internal::Snowball::Finnish::close_env(), Xapian::Internal::Snowball::French::close_env(), Xapian::Internal::Snowball::German::close_env(), Xapian::Internal::Snowball::Greek::close_env(), Xapian::Internal::Snowball::Hindi::close_env(), Xapian::Internal::Snowball::Hungarian::close_env(), Xapian::Internal::Snowball::Indonesian::close_env(), Xapian::Internal::Snowball::Irish::close_env(), Xapian::Internal::Snowball::Italian::close_env(), Xapian::Internal::Snowball::Lithuanian::close_env(), Xapian::Internal::Snowball::Lovins::close_env(), Xapian::Internal::Snowball::Nepali::close_env(), Xapian::Internal::Snowball::Norwegian::close_env(), Xapian::Internal::Snowball::Polish::close_env(), Xapian::Internal::Snowball::Porter::close_env(), Xapian::Internal::Snowball::Portuguese::close_env(), Xapian::Internal::Snowball::Romanian::close_env(), Xapian::Internal::Snowball::Russian::close_env(), Xapian::Internal::Snowball::Serbian::close_env(), Xapian::Internal::Snowball::Spanish::close_env(), Xapian::Internal::Snowball::Swedish::close_env(), Xapian::Internal::Snowball::Tamil::close_env(), Xapian::Internal::Snowball::Turkish::close_env(), and Xapian::Internal::Snowball::Yiddish::close_env().

◆ name_of_token()

const char* name_of_token ( int  code)

◆ output_str()

void output_str ( FILE *  outfile,
struct str *  str 
)

◆ peek_token()

int peek_token ( struct tokeniser t)

◆ print_program()

void print_program ( struct analyser a)

◆ put_utf8()

int put_utf8 ( int  ch,
symbol p 
)

◆ read_program()

void read_program ( struct analyser a,
unsigned  localise_mask 
)

Read and analyse the program.

Parameters
localise_maskbitmask of variable types the generator can localise

◆ read_token()

int read_token ( struct tokeniser t)

◆ repeat_restore()

int repeat_restore ( struct generator g,
struct node p 
)

◆ report_b()

void report_b ( FILE *  out,
const symbol p 
)

◆ report_s()

void report_s ( FILE *  out,
const byte p 
)

◆ str_append()

void str_append ( struct str *  str,
const struct str *  add 
)

◆ str_append_ch()

void str_append_ch ( struct str *  str,
char  add 
)

◆ str_append_int()

void str_append_int ( struct str *  str,
int  i 
)

◆ str_append_s()

void str_append_s ( struct str *  str,
const byte q 
)

◆ str_append_string()

void str_append_string ( struct str *  str,
const char *  s 
)

◆ str_append_wchar_as_utf8()

void str_append_wchar_as_utf8 ( struct str *  str,
symbol  ch 
)

◆ str_assign()

void str_assign ( struct str *  str,
const char *  s 
)

◆ str_back()

int str_back ( const struct str *  str)

◆ str_clear()

void str_clear ( struct str *  str)

◆ str_copy()

struct str* str_copy ( const struct str *  old)

◆ str_data()

byte* str_data ( const struct str *  str)

◆ str_delete()

void str_delete ( struct str *  str)

◆ str_len()

int str_len ( const struct str *  str)

◆ str_new()

struct str* str_new ( void  )

◆ str_pop()

void str_pop ( const struct str *  str)

◆ str_pop_n()

void str_pop_n ( const struct str *  str,
int  n 
)

◆ tailcallable()

int tailcallable ( struct generator g,
struct node p 
)

◆ write_c_relop()

void write_c_relop ( struct generator g,
int  relop 
)

◆ write_char()

void write_char ( struct generator g,
int  ch 
)

◆ write_comment_content()

void write_comment_content ( struct generator g,
struct node p,
const char *  end 
)

◆ write_generated_comment_content()

void write_generated_comment_content ( struct generator g)

◆ write_hex4()

void write_hex4 ( struct generator g,
int  ch 
)

◆ write_int()

void write_int ( struct generator g,
int  i 
)

◆ write_newline()

void write_newline ( struct generator g)

◆ write_s()

void write_s ( struct generator g,
const byte b 
)

◆ write_start_comment()

void write_start_comment ( struct generator g,
const char *  comment_start,
const char *  comment_end 
)

◆ write_str()

void write_str ( struct generator g,
struct str *  str 
)

◆ write_string()

void write_string ( struct generator g,
const char *  s 
)

◆ write_symbol()

void write_symbol ( struct generator g,
symbol  s 
)

◆ write_wchar_as_utf8()

void write_wchar_as_utf8 ( struct generator g,
symbol  ch 
)

Variable Documentation

◆ space_count

int space_count
extern