# [cprj_int.h] Language Interface

## contents

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

## symbol objects - init & quit

    void cprj_initSymbols()
    void cprj_quitSymbols()

## Types & Constants

cprj | abstract type

cprjProjectDfn | abstract type
cprjRelOp | abstract type
cprjMacDfn | abstract type
cprjProject | abstract type
cprjRuleAttr | abstract type
cprjOptTPrefix | abstract type
cprjOptSPrefix | abstract type
cprjDstDfn | abstract type
cprjDstName | abstract type
cprjRegExp | abstract type
cprjSrcAttr | abstract type
cprjSrcDfn | abstract type
cprjTypDfn | abstract type

## Access to Tokens

    c_bool Tcprj_Name(GLS_Tok x)
    c_bool Tcprj_Val(GLS_Tok x)

## Access to Terms

    c_bool cprj_cprj(PT_Term x, cprj* x1)
    c_bool cprj_ProjectDfn(PT_Term x, cprjProjectDfn* x1)
    c_bool cprj_RelOp(PT_Term x, cprjRelOp* x1)
    c_bool cprj_MacDfn(PT_Term x, cprjMacDfn* x1)
    c_bool cprj_Project(PT_Term x, cprjProject* x1)
    c_bool cprj_RuleAttr(PT_Term x, cprjRuleAttr* x1)
    c_bool cprj_OptTPrefix(PT_Term x, cprjOptTPrefix* x1)
    c_bool cprj_OptSPrefix(PT_Term x, cprjOptSPrefix* x1)
    c_bool cprj_DstDfn(PT_Term x, cprjDstDfn* x1)
    c_bool cprj_DstName(PT_Term x, cprjDstName* x1)
    c_bool cprj_RegExp(PT_Term x, cprjRegExp* x1)
    c_bool cprj_SrcAttr(PT_Term x, cprjSrcAttr* x1)
    c_bool cprj_SrcDfn(PT_Term x, cprjSrcDfn* x1)
    c_bool cprj_TypDfn(PT_Term x, cprjTypDfn* x1)

## cprj

    c_bool cprj_Start_ProjectDfn(cprj x, cprjProjectDfn* x1)
    #define cprj_Start_0   cprj_Start_ProjectDfn

## ProjectDfn

    c_bool cprjProjectDfn_root(cprjProjectDfn x, cprjProject* x1)

## RelOp

    c_bool cprjRelOp_le(cprjRelOp x)
    c_bool cprjRelOp_eq(cprjRelOp x)
    c_bool cprjRelOp_ne(cprjRelOp x)
    c_bool cprjRelOp_gt(cprjRelOp x)
    c_bool cprjRelOp_ge(cprjRelOp x)
    c_bool cprjRelOp_lt(cprjRelOp x)

## MacDfn

    c_bool cprjMacDfn_cond(cprjMacDfn x, GLS_Tok* x1, cprjRelOp* x2,
                           GLS_Tok* x3, GLS_Tok* x4,
                           GLS_Tok* x5)
    c_bool cprjMacDfn_val(cprjMacDfn x, GLS_Tok* x1)

## Project

    c_bool cprjProject_dprj(cprjProject x, GLS_Tok* x1, cprjProject* x2)
    c_bool cprjProject_exec(cprjProject x, GLS_Tok* x1, cprjProject* x2)
    c_bool cprjProject_oext(cprjProject x, GLS_Tok* x1, cprjProject* x2)
    c_bool cprjProject_mac(cprjProject x, GLS_Tok* x1, cprjMacDfn* x2,
                           cprjProject* x3)
    c_bool cprjProject_cmd(cprjProject x, GLS_Tok* x1, GLS_Tok* x2,
                           cprjProject* x3)
    c_bool cprjProject_res(cprjProject x, GLS_Tok* x1, cprjProject* x2)
    c_bool cprjProject_lib(cprjProject x, GLS_Tok* x1, cprjProject* x2)
    c_bool cprjProject_typ(cprjProject x, cprjTypDfn* x1, cprjProject* x2)
    c_bool cprjProject_inc(cprjProject x, GLS_Tok* x1, cprjProject* x2)
    c_bool cprjProject_par(cprjProject x, GLS_Tok* x1, GLS_Tok* x2,
                           GLS_Tok* x3, cprjProject* x4)
    c_bool cprjProject_ddst(cprjProject x, GLS_Tok* x1, cprjProject* x2)
    c_bool cprjProject_ext(cprjProject x, GLS_Tok* x1, cprjProject* x2)
    c_bool cprjProject_nul(cprjProject x)
    c_bool cprjProject_rule(cprjProject x, GLS_Tok* x1, cprjRuleAttr* x2,
                            cprjDstDfn* x3, cprjProject* x4,
                            GLS_Tok* x5, cprjSrcDfn* x6,
                            cprjProject* x7)
    c_bool cprjProject_dobj(cprjProject x, GLS_Tok* x1, cprjProject* x2)

## RuleAttr

    c_bool cprjRuleAttr_ex2(cprjRuleAttr x)
    c_bool cprjRuleAttr_nul(cprjRuleAttr x)
    c_bool cprjRuleAttr_exe(cprjRuleAttr x)

## OptTPrefix

    c_bool cprjOptTPrefix_nul(cprjOptTPrefix x)
    c_bool cprjOptTPrefix_pre(cprjOptTPrefix x, GLS_Tok* x1)

## OptSPrefix

    c_bool cprjOptSPrefix_pre(cprjOptSPrefix x, GLS_Tok* x1)
    c_bool cprjOptSPrefix_nul(cprjOptSPrefix x)

## DstDfn

    c_bool cprjDstDfn_int(cprjDstDfn x, GLS_Tok* x1, cprjDstName* x2,
                          cprjOptTPrefix* x3, cprjOptSPrefix* x4)
    c_bool cprjDstDfn_ext(cprjDstDfn x)

## DstName

    c_bool cprjDstName_nam(cprjDstName x, GLS_Tok* x1)
    c_bool cprjDstName_root(cprjDstName x)
    c_bool cprjDstName_src(cprjDstName x)
    c_bool cprjDstName_dir(cprjDstName x)

## RegExp

    c_bool cprjRegExp_exp(cprjRegExp x, GLS_Tok* x1)
    c_bool cprjRegExp_nul(cprjRegExp x)

## SrcAttr

    c_bool cprjSrcAttr_exp(cprjSrcAttr x, cprjRegExp* x1)
    c_bool cprjSrcAttr_rexp(cprjSrcAttr x, cprjRegExp* x1)

## SrcDfn

    c_bool cprjSrcDfn_dfn(cprjSrcDfn x, GLS_Tok* x1, cprjSrcAttr* x2)

## TypDfn

    c_bool cprjTypDfn_two(cprjTypDfn x, GLS_Tok* x1, GLS_Tok* x2)
    c_bool cprjTypDfn_one(cprjTypDfn x, GLS_Tok* x1)