# [estyx_int.h] Language Interface

## contents

#include "ptm.h"
#include "gls.h"

## symbol objects - init & quit

    void esty_initSymbols()
    void esty_quitSymbols()

## Types & Constants

estyx | abstract type

estySource | abstract type
estyQlxDfn | abstract type
estyQlxCat | abstract type
estyQlxOpt | abstract type
estyExp | abstract type
estyDfn | abstract type
estyCat | abstract type
estyPrd | abstract type
estyMbr | abstract type
estyForm | abstract type

## Access to Tokens

    c_bool Testy_Ide(GLS_Tok x)
    c_bool Testy_Set(GLS_Tok x)
    c_bool Testy_Seq(GLS_Tok x)

## Access to Terms

    c_bool esty_estyx(PT_Term x, estyx* x1)
    c_bool esty_Source(PT_Term x, estySource* x1)
    c_bool esty_QlxDfn(PT_Term x, estyQlxDfn* x1)
    c_bool esty_QlxCat(PT_Term x, estyQlxCat* x1)
    c_bool esty_QlxOpt(PT_Term x, estyQlxOpt* x1)
    c_bool esty_Exp(PT_Term x, estyExp* x1)
    c_bool esty_Dfn(PT_Term x, estyDfn* x1)
    c_bool esty_Cat(PT_Term x, estyCat* x1)
    c_bool esty_Prd(PT_Term x, estyPrd* x1)
    c_bool esty_Mbr(PT_Term x, estyMbr* x1)
    c_bool esty_Form(PT_Term x, estyForm* x1)

## estyx

    c_bool estyx_Start_Source(estyx x, estySource* x1)
    #define estyx_Start_0   estyx_Start_Source

## Source

    c_bool estySource_root(estySource x, GLS_Tok* x1, GLS_Lst(estyQlxDfn)* x2,
                           GLS_Lst(estyDfn)* x3)

## QlxDfn

    c_bool estyQlxDfn_defn(estyQlxDfn x, estyQlxCat* x1, estyQlxOpt* x2,
                           GLS_Tok* x3, estyExp* x4)

## QlxCat

    c_bool estyQlxCat_letC(estyQlxCat x)
    c_bool estyQlxCat_comC(estyQlxCat x)
    c_bool estyQlxCat_ignC(estyQlxCat x)
    c_bool estyQlxCat_tokC(estyQlxCat x)

## QlxOpt

    c_bool estyQlxOpt_non(estyQlxOpt x)
    c_bool estyQlxOpt_ignca(estyQlxOpt x)

## Exp

    c_bool estyExp_range(estyExp x, estyExp* x1, estyExp* x2)
    c_bool estyExp_opt(estyExp x, estyExp* x1)
    c_bool estyExp_union(estyExp x, estyExp* x1, estyExp* x2)
    c_bool estyExp_conc(estyExp x, estyExp* x1, estyExp* x2)
    c_bool estyExp_plus(estyExp x, estyExp* x1)
    c_bool estyExp_ident(estyExp x, GLS_Tok* x1)
    c_bool estyExp_diff(estyExp x, estyExp* x1, estyExp* x2)
    c_bool estyExp_sequ(estyExp x, GLS_Tok* x1)
    c_bool estyExp_set(estyExp x, GLS_Tok* x1)
    c_bool estyExp_star(estyExp x, estyExp* x1)

## Dfn

    c_bool estyDfn_defn(estyDfn x, estyCat* x1, GLS_Tok* x2,
                        GLS_Lst(estyPrd)* x3)

## Cat

    c_bool estyCat_letC(estyCat x)
    c_bool estyCat_bgnC(estyCat x)

## Prd

    c_bool estyPrd_prod(estyPrd x, GLS_Tok* x1, GLS_Lst(estyMbr)* x2)

## Mbr

    c_bool estyMbr_tkm(estyMbr x, GLS_Tok* x1)
    c_bool estyMbr_ntm(estyMbr x, estyForm* x1)

## Form

    c_bool estyForm_one(estyForm x, estyForm* x1, GLS_Lst(GLS_Tok)* x2)
    c_bool estyForm_ide(estyForm x, GLS_Tok* x1)
    c_bool estyForm_nul(estyForm x, GLS_Lst(GLS_Tok)* x1, estyForm* x2,
                        GLS_Lst(GLS_Tok)* x3, GLS_Lst(GLS_Tok)* x4)