My Project
libparse.h
Go to the documentation of this file.
1 #ifndef LIBPARSE_H
2 #define LIBPARSE_H
3 /****************************************
4 * Computer Algebra System SINGULAR *
5 ****************************************/
6 /*
7 * ABSTRACT: lib parsing
8 */
10 typedef enum { LOAD_LIB, GET_INFO } lp_modes;
11 
12 #ifdef STANDALONE_PARSER
13 
14 
15 #define idhdl void*
16 #define leftv void*
17 #define package void*
18 #define BOOLEAN int
19 
21 // LANG_TOP : Toplevel package only
22 // LANG_SINGULAR:
23 // LANG_C :
24 //
25 
26 class proc_singular
27 {
28 public:
29  long proc_start; // position where proc is starting
30  long def_end; // position where proc header is ending
31  long help_start; // position where help is starting
32  long help_end; // position where help is starting
33  long body_start; // position where proc-body is starting
34  long body_end; // position where proc-body is ending
35  long example_start; // position where example is starting
36  long proc_end; // position where proc is ending
37  int proc_lineno;
38  int body_lineno;
39  int example_lineno;
40  char *body;
41  long help_chksum;
42 };
43 
44 struct proc_object
45 {
46 //public:
47  BOOLEAN (*function)(leftv res, leftv v);
48 };
49 union uprocinfodata
50 {
51 public:
52  proc_singular s; // data of Singular-procedure
53  struct proc_object o; // pointer to binary-function
54 };
55 
56 typedef union uprocinfodata procinfodata;
57 
58 class procinfo;
59 typedef procinfo * procinfov;
60 
61 class procinfo
62 {
63 public:
64  char *libname;
65  char *procname;
66  package pack;
68  short ref;
69  char is_static; // if set, proc not accessible for user
70  char trace_flag;
71  procinfodata data;
72 };
73 #endif
74 
76  const char *procname, int line, long pos, BOOLEAN pstatic=FALSE);
77 
78 int yylplex(const char *libname, const char *libfile, lib_style_types *lib_style,
79  idhdl pl, BOOLEAN autoexport=FALSE, lp_modes=LOAD_LIB);
80 
81 void reinit_yylp();
82 
84 
85 # define YYLP_ERR_NONE 0
86 # define YYLP_DEF_BR2 1
87 # define YYLP_BODY_BR2 2
88 # define YYLP_BODY_BR3 3
89 # define YYLP_BODY_TMBR2 4
90 # define YYLP_BODY_TMBR3 5
91 # define YYLP_EX_BR2 6
92 # define YYLP_EX_BR3 7
93 # define YYLP_BAD_CHAR 8
94 # define YYLP_MISSQUOT 9
95 # define YYLP_MISS_BR1 10
96 # define YYLP_MISS_BR2 11
97 # define YYLP_MISS_BR3 12
98 
99 # ifdef STANDALONE_PARSER
100 #define myfopen fopen
101 #define myfread fread
102 # endif
103 
104 #endif /* LIBPARSE_H */
105 
106 
int BOOLEAN
Definition: auxiliary.h:87
#define FALSE
Definition: auxiliary.h:96
Definition: idrec.h:35
Class used for (list of) interpreter objects.
Definition: subexpr.h:83
CanonicalForm res
Definition: facAbsFact.cc:60
const Variable & v
< [in] a sqrfree bivariate poly
Definition: facBivar.h:39
#define EXTERN_VAR
Definition: globaldefs.h:6
#define pi
Definition: libparse.cc:1145
lib_style_types
Definition: libparse.h:9
@ OLD_LIBSTYLE
Definition: libparse.h:9
@ NEW_LIBSTYLE
Definition: libparse.h:9
void reinit_yylp()
Definition: libparse.cc:3376
EXTERN_VAR char * text_buffer
Definition: libparse.h:83
procinfo * iiInitSingularProcinfo(procinfo *pi, const char *libname, const char *procname, int line, long pos, BOOLEAN pstatic=FALSE)
lp_modes
Definition: libparse.h:10
@ LOAD_LIB
Definition: libparse.h:10
@ GET_INFO
Definition: libparse.h:10
int yylplex(const char *libname, const char *libfile, lib_style_types *lib_style, idhdl pl, BOOLEAN autoexport=FALSE, lp_modes=LOAD_LIB)
procinfo * procinfov
Definition: structs.h:65
char * libname
Definition: subexpr.h:56
language_defs language
Definition: subexpr.h:59
char * body
Definition: subexpr.h:36
long help_start
Definition: subexpr.h:29
int example_lineno
Definition: subexpr.h:35
procinfodata data
Definition: subexpr.h:63
char * procname
Definition: subexpr.h:57
long def_end
Definition: subexpr.h:28
long help_end
Definition: subexpr.h:30
long proc_end
Definition: subexpr.h:27
long example_start
Definition: subexpr.h:33
char trace_flag
Definition: subexpr.h:62
long help_chksum
Definition: subexpr.h:37
proc_singular s
Definition: subexpr.h:48
char is_static
Definition: subexpr.h:61
long proc_start
Definition: subexpr.h:26
language_defs
Definition: subexpr.h:22
@ LANG_MAX
Definition: subexpr.h:22
@ LANG_SINGULAR
Definition: subexpr.h:22
@ LANG_NONE
Definition: subexpr.h:22
@ LANG_MIX
Definition: subexpr.h:22
@ LANG_C
Definition: subexpr.h:22
@ LANG_TOP
Definition: subexpr.h:22
long body_start
Definition: subexpr.h:31
short ref
Definition: subexpr.h:60
struct proc_object o
Definition: subexpr.h:49
long body_end
Definition: subexpr.h:32
int body_lineno
Definition: subexpr.h:34