equal
deleted
inserted
replaced
45 #ifndef _ABSYNTAX_HH |
45 #ifndef _ABSYNTAX_HH |
46 #define _ABSYNTAX_HH |
46 #define _ABSYNTAX_HH |
47 |
47 |
48 |
48 |
49 #include <stdio.h> // required for NULL |
49 #include <stdio.h> // required for NULL |
|
50 #include <vector> |
50 |
51 |
51 /* Forward declaration of the visitor interface |
52 /* Forward declaration of the visitor interface |
52 * dclared in the visitor.hh file |
53 * dclared in the visitor.hh file |
53 * We cannot include the visitor.hh file, as it will |
54 * We cannot include the visitor.hh file, as it will |
54 * include this same file first, as it too requires references |
55 * include this same file first, as it too requires references |
74 long int first_order; /* relative order in which it is read by lexcial analyser */ |
75 long int first_order; /* relative order in which it is read by lexcial analyser */ |
75 int last_line; |
76 int last_line; |
76 int last_column; |
77 int last_column; |
77 const char *last_file; /* filename referenced by last line/column */ |
78 const char *last_file; /* filename referenced by last line/column */ |
78 long int last_order; /* relative order in which it is read by lexcial analyser */ |
79 long int last_order; /* relative order in which it is read by lexcial analyser */ |
|
80 symbol_c * datatype; /* data type of the expression/literal/etc. Filled in stage3 by narrow_candidate_datatypes_c */ |
|
81 std::vector <symbol_c *> candidate_datatypes; /* All possible data types the expression/literal/etc. may take. Filled in stage3 by fill_candidate_datatypes_c class */ |
|
82 |
79 |
83 |
80 public: |
84 public: |
81 /* default constructor */ |
85 /* default constructor */ |
82 symbol_c(int fl = 0, int fc = 0, const char *ffile = NULL /* filename */, long int forder=0, /* order in which it is read by lexcial analyser */ |
86 symbol_c(int fl = 0, int fc = 0, const char *ffile = NULL /* filename */, long int forder=0, /* order in which it is read by lexcial analyser */ |
83 int ll = 0, int lc = 0, const char *lfile = NULL /* filename */, long int lorder=0 /* order in which it is read by lexcial analyser */ |
87 int ll = 0, int lc = 0, const char *lfile = NULL /* filename */, long int lorder=0 /* order in which it is read by lexcial analyser */ |