Skip to content
Extraits de code Groupes Projets
Sélectionner une révision Git
  • 3d0e2baf4efae2b14367ab799230ada262b7e318
  • master par défaut
  • 1-baka-export
  • meson
  • assdraw
  • old-master
  • v3.2.2
  • v3.2.1
  • v3.2.0
  • v3.1.3
  • v3.1.2
  • v3.1.1
  • v3.1.0
  • v3.0.4
  • v3.0.3
  • v3.0.2
  • v3.0.1
  • v3.0.0
  • v2.1.3
  • v2.1.4
  • v2.1.5
  • v2.1.6
  • v2.1.0
  • v2.1.1
  • v2.1.2
  • v2.1.7
26 résultats

video_display.cpp

Blame
  • numex.h 6,66 Kio
    #ifndef NUMEX_H
    #define NUMEX_H
    
    
    #include <p2c/newasm.h>
    
    #ifdef NUMEX_G
    # define vextern
    #else
    # define vextern extern
    #endif
    
    
    #define ne_maxargs      255
    
    #define ne_badvalue     1.2345678e277   /*not likely to occur in nature*/
    
    #define ne_badescape    (-50)
    
    
    
    typedef enum {
      ne_notype, ne_integer, ne_real, ne_string, ne_boolean
    } ne_datatype;
    typedef ne_datatype ne_datatypearray[ne_maxargs];
    
    typedef enum {
      ne_error, ne_ic, ne_rc, ne_sc, ne_ip, ne_rp, ne_sp, ne_if, ne_rf, ne_sf,
      ne_iarg, ne_rarg, ne_sarg, ne_iadd, ne_isub, ne_imul, ne_idiv, ne_ineg,
      ne_radd, ne_rsub, ne_rmul, ne_rdiv, ne_rneg, ne_rpow, ne_sadd, ne_itor,
      ne_imod, ne_rbool, ne_sbool, ne_ieq, ne_ine, ne_ilt, ne_ile, ne_igt, ne_ige,
      ne_req, ne_rne, ne_rlt, ne_rle, ne_rgt, ne_rge, ne_seq, ne_sne, ne_slt,
      ne_sle, ne_sgt, ne_sge, ne_not, ne_and, ne_or, ne_xor, ne_lsh, ne_rsh,
      ne_lnot, ne_ior, ne_ror, ne_sor, ne_iand, ne_rand, ne_sand, ne_icond,
      ne_rcond, ne_scond, ne_round, ne_trunc, ne_ln, ne_exp, ne_iabs, ne_rabs,
      ne_sqrt, ne_sin, ne_cos, ne_tan, ne_arctan, ne_rxp, ne_rxor
    } ne_opkind;
    
    
    typedef enum {
      ne_noerror, ne_syntax, ne_overflow, ne_underflow, ne_divzero, ne_strlong,
      ne_badtypes, ne_undef, ne_badval
    } ne_errorkind;
    
    
    
    
    typedef struct ne_functionrec {
      uchar nargs, minargs, maxargs;
      unsigned static_ : 1, subnex : 1, dummy_2 : 6;
      union {
        na_quadword qw;
        struct ne_nexrec **nexp;
        struct {
          _PROCEDURE ipr;
          unsigned arg1 : 3, arg2 : 3, arg3 : 3, arg4 : 3;
        } U5;
        _PROCEDURE rpr;
        _PROCEDURE spr;
        struct {
          na_quadword qw2;
          ne_datatype ptypes[ne_maxargs];
        } U99;
      } UU;
    } ne_functionrec;
    
    typedef struct ne_nexrec *ne_nexptrarray[ne_maxargs];
    
    typedef na_quadword ne_argvalarray[ne_maxargs];
    
    typedef struct ne_nexrec {
      uchar nargs;
      unsigned op : 7;
      union {
        na_quadword qw;
        unsigned err : 4;
        long i;
        double r;
        char *s;
        struct {
          long *ip;
          na_strlist_t *ips;
          struct ne_nexrec *p1, *p2, *p3, *p4;
        } U10;
        struct {
          double *rp;
          na_strlist_t *rps;
        } U11;
        struct {
          char **sp;
          na_strlist_t *sps;
        } U12;
        struct {
          ne_functionrec *fp;
          na_strlist_t *fps;
        } U15;
        struct {
          struct ne_nexrec **ep;
          na_strlist_t *eps;
        } U16;
        struct {
          na_quadword qw2;
          ne_nexptrarray pvals;
        } U99;
      } UU;
    } ne_nexrec;
    
    
    typedef struct ne_desc {
      na_strlist_t *symtab;
      unsigned casesens : 1, builtin : 1, scaled : 1, doubleeq : 1, isfunc : 1,
    	   dummy0 : 7, error : 4;
      char units[6];
      long startident[9], ident[9];   /*must not contain #0*/
      _PROCEDURE symproc;
      na_long dummy1, dummy2;
    } ne_desc;
    
    
    #define ne_kind_intconst  'A'   /*for symbol table entries*/
    #define ne_kind_intvalue  'B'
    #define ne_kind_intptr  'C'
    #define ne_kind_intfunc  'D'
    #define ne_kind_realconst  'E'
    #define ne_kind_srealconst  'F'
    #define ne_kind_realptr  'G'
    #define ne_kind_realfunc  'H'
    #define ne_kind_strconst  'I'
    #define ne_kind_strvalue  'J'
    #define ne_kind_strptr  'K'
    #define ne_kind_strfunc  'L'
    #define ne_kind_intarg  'M'
    #define ne_kind_realarg  'N'
    #define ne_kind_strarg  'O'
    #define ne_kind_realxptr  'P'
    #define ne_kind_nex     'Z'
    
    
    vextern na_quadword *ne_argarray;
    
    
    extern void ne_init (ne_desc *desc);
    extern void ne_compile (char *ex, ne_nexrec **nex, ne_desc *desc);
    extern void ne_intcompile (char *ex, long *endp, ne_nexrec **nex,
    			      ne_desc *desc);
    extern void ne_dump (ne_nexrec *nex);
    extern void ne_uncompile (ne_nexrec *nex, char *ex, ne_desc *desc);
    extern void ne_copy (ne_nexrec *nex, ne_nexrec **newnex);
    extern void ne_dispose (ne_nexrec **nex);
    extern void ne_constant (ne_nexrec **nex, ne_desc *desc, char *which);
    extern void ne_notconstant (ne_nexrec **nex, ne_desc *desc, char *which);
    extern void ne_constantlist (ne_nexrec **nex, ne_desc *desc,
    				na_strlist_t *which);
    extern void ne_notconstantlist (ne_nexrec **nex, ne_desc *desc,
    				   na_strlist_t *which);
    extern ne_nexrec *ne_makeerror (ne_errorkind err);
    extern ne_datatype ne_exprtype (ne_nexrec *nex);
    extern ne_nexrec *ne_typecast (ne_nexrec *nex, ne_datatype typ);
    extern void ne_evaluate (ne_nexrec *nex, ne_nexrec *res);
    extern long ne_ievaluate (ne_nexrec *nex, ne_desc *desc);
    extern double ne_revaluate (ne_nexrec *nex, ne_desc *desc);
    extern char *ne_sevaluate (char *Result, ne_nexrec *nex, ne_desc *desc);
    extern long ne_ievalexpr (char *ex, ne_desc *desc);
    extern double ne_revalexpr (char *ex, ne_desc *desc);
    
    extern char *ne_sevalexpr (char *Result, char *ex, ne_desc *desc);
    extern void ne_makeintconst (na_strlist_t *sym, long i);
    extern void ne_makesrealconst (na_strlist_t *sym, double r);
    extern void ne_makerealconst (na_strlist_t *sym, double r);
    extern void ne_makestrconst (na_strlist_t *sym, char *s);
    extern void ne_makeintvar (na_strlist_t *sym, long *i);
    extern void ne_makerealvar (na_strlist_t *sym, double *r);
    extern void ne_makerealxvar (na_strlist_t *sym, double *r);
    extern void ne_makestrvar (na_strlist_t *sym, char *s);
    extern void ne_makestrptrvar (na_strlist_t *sym, char **sp);
    extern void ne_makeintfunc (na_strlist_t *sym, ne_datatype t1,
    			       ne_datatype t2, ne_datatype t3,
    			       _PROCEDURE pr);
    extern void ne_makerealfunc (na_strlist_t *sym, ne_datatype t1,
    				ne_datatype t2, ne_datatype t3,
    				_PROCEDURE pr);
    extern void ne_makestrfunc (na_strlist_t *sym, ne_datatype t1,
    			       ne_datatype t2, ne_datatype t3,
    			       _PROCEDURE pr);
    extern void ne_makeintmfunc (na_strlist_t *sym, long nargs,
    				ne_datatype *args, _PROCEDURE pr);
    extern void ne_makerealmfunc (na_strlist_t *sym, long nargs,
    				 ne_datatype *args, _PROCEDURE pr);
    extern void ne_makestrmfunc (na_strlist_t *sym, long nargs,
    				ne_datatype *args, _PROCEDURE pr);
    extern void ne_makeintsfunc (na_strlist_t *sym, long nargs,
    				ne_datatype *args, ne_nexrec **nex);
    extern void ne_makerealsfunc (na_strlist_t *sym, long nargs,
    				 ne_datatype *args, ne_nexrec **nex);
    extern void ne_makestrsfunc (na_strlist_t *sym, long nargs,
    				ne_datatype *args, ne_nexrec **nex);
    extern void ne_makeintarg (na_strlist_t *sym, long i);
    extern void ne_makerealarg (na_strlist_t *sym, long i);
    extern void ne_makestrarg (na_strlist_t *sym, long i);
    extern void ne_setminargs (na_strlist_t *sym, long minargs);
    extern void ne_setmaxargs (na_strlist_t *sym, long maxargs);
    extern void ne_makestaticfunc (na_strlist_t *sym);
    extern void ne_disposesym (na_strlist_t *sym);
    
    extern void ne_disposesymtab (na_strlist_t **symtab);
    extern int ne_condeval (ne_nexrec *nex);
    extern long ne_ieval (ne_nexrec *nex);
    extern double ne_reval (ne_nexrec *nex);
    
    extern char *ne_seval (char *Result, ne_nexrec *nex);
    
    extern int ne_readreal (char *s, double *r, ne_desc *desc);
    
    
    #undef vextern
    
    #endif /*NUMEX_H*/
    
    /* End. */