The version of basic copied from Martin Kerstens directory.
This commit is contained in:
parent
4301dfb7bf
commit
335d55ff4a
29
lang/basic/src.old/graph.h
Normal file
29
lang/basic/src.old/graph.h
Normal file
|
@ -0,0 +1,29 @@
|
||||||
|
#
|
||||||
|
/*
|
||||||
|
** The control graph is represented by a multi-list structure.
|
||||||
|
** The em code is stored on the em intermediate file already
|
||||||
|
** The offset and length is saved only.
|
||||||
|
** Although this makes code generation mode involved, it allows
|
||||||
|
** rather large BASIC programs to be processed.
|
||||||
|
*/
|
||||||
|
typedef struct LIST {
|
||||||
|
int emlabel; /* em label used with forwards */
|
||||||
|
int linenr; /* BASIC line number */
|
||||||
|
struct LIST *nextlist;
|
||||||
|
} List;
|
||||||
|
|
||||||
|
typedef struct LINERECORD{
|
||||||
|
int emlabel; /* target label */
|
||||||
|
int linenr; /* BASIC line number */
|
||||||
|
long offset; /* file offset in em file */
|
||||||
|
long codelines; /* number of em code lines */
|
||||||
|
List *callers; /* used from where ? */
|
||||||
|
List *gotos; /* fanout labels */
|
||||||
|
struct LINERECORD *nextline, *prevline;
|
||||||
|
int fixed; /* fixation of block */
|
||||||
|
} Linerecord;
|
||||||
|
|
||||||
|
Linerecord *firstline,
|
||||||
|
*currline,
|
||||||
|
*lastline;
|
||||||
|
extern List *forwardlabel;
|
79
lang/basic/src.old/symbols.h
Normal file
79
lang/basic/src.old/symbols.h
Normal file
|
@ -0,0 +1,79 @@
|
||||||
|
#define NIL 0
|
||||||
|
#define TRUE 1
|
||||||
|
#define FALSE 0
|
||||||
|
|
||||||
|
#define DEFAULTTYPE 500
|
||||||
|
#define INTTYPE 501
|
||||||
|
#define FLOATTYPE 502
|
||||||
|
#define DOUBLETYPE 503
|
||||||
|
#define STRINGTYPE 504
|
||||||
|
|
||||||
|
#define ABSSYM 520
|
||||||
|
#define ASCSYM 521
|
||||||
|
#define ATNSYM 522
|
||||||
|
#define CDBLSYM 524
|
||||||
|
#define CHRSYM 525
|
||||||
|
#define CINTSYM 526
|
||||||
|
#define COSSYM 527
|
||||||
|
#define CSNGSYM 528
|
||||||
|
#define CVISYM 529
|
||||||
|
#define CVSSYM 530
|
||||||
|
#define CVDSYM 531
|
||||||
|
#define EOFSYM 532
|
||||||
|
#define EXPSYM 533
|
||||||
|
#define FIXSYM 534
|
||||||
|
#define FRESYM 535
|
||||||
|
#define HEXSYM 536
|
||||||
|
#define INPSYM 538
|
||||||
|
#define INSTRSYM 539
|
||||||
|
#define LEFTSYM 540
|
||||||
|
#define LENSYM 541
|
||||||
|
#define LOCSYM 542
|
||||||
|
#define LOGSYM 543
|
||||||
|
#define LPOSSYM 544
|
||||||
|
#define MKISYM 546
|
||||||
|
#define MKSSYM 547
|
||||||
|
#define MKDSYM 548
|
||||||
|
#define OCTSYM 549
|
||||||
|
#define PEEKSYM 550
|
||||||
|
#define POSSYM 551
|
||||||
|
#define RIGHTSYM 552
|
||||||
|
#define RNDSYM 553
|
||||||
|
#define SGNSYM 554
|
||||||
|
#define SINSYM 555
|
||||||
|
#define SPACESYM 556
|
||||||
|
#define SPCSYM 557
|
||||||
|
#define SQRSYM 558
|
||||||
|
#define STRSYM 559
|
||||||
|
#define STRINGSYM 560
|
||||||
|
#define TABSYM 561
|
||||||
|
#define TANSYM 562
|
||||||
|
#define VALSYM 564
|
||||||
|
#define VARPTRSYM 565
|
||||||
|
/* some stuff forgotten */
|
||||||
|
#define INTSYM 567
|
||||||
|
#define AUTOSYM 568
|
||||||
|
#define LISTSYM 569
|
||||||
|
#define LOADSYM 570
|
||||||
|
#define MERGESYM 571
|
||||||
|
#define TRONSYM 572
|
||||||
|
#define TROFFSYM 573
|
||||||
|
#define XORSYM 574
|
||||||
|
#define EQVSYM 575
|
||||||
|
#define IMPSYM 576
|
||||||
|
#define OUTSYM 577
|
||||||
|
|
||||||
|
#define MAXDIMENSIONS 10
|
||||||
|
|
||||||
|
typedef struct SYMBOL{
|
||||||
|
char *symname;
|
||||||
|
int symalias;
|
||||||
|
int symtype;
|
||||||
|
int dimensions; /* dimension array/function */
|
||||||
|
int dimlimit[MAXDIMENSIONS]; /* type of parameter */
|
||||||
|
int dimalias[MAXDIMENSIONS];
|
||||||
|
struct SYMBOL *nextsym;
|
||||||
|
int isfunction;
|
||||||
|
int parmsize;
|
||||||
|
int isparam;
|
||||||
|
} Symbol;
|
Loading…
Reference in a new issue