-
Notifications
You must be signed in to change notification settings - Fork 28
/
Copy pathrixc.h
79 lines (65 loc) · 2.33 KB
/
rixc.h
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
#ifndef RITC_H
#define RITC_H
#include "ObjectTree.h"
#include "preproc.h"
#include "errors.h"
#include "ctype.h"
#include "crsl.h"
#define COMPILER_SEP "_$_"
#define GENERIC_PARAM "Generic_$$"
extern int yylex();
extern int yyparse();
extern FILE *yyin;
//void defineRSLSymbols(Object *);
Object *findByName(char *name);
Object *findFunctionByFullName(char *name);
void handleEOF();
Object *completeExpression(Object * expression);
Object *finalize(Object * expression);
void closeBrace();
Object *makeReturn(Object * expression);
void checkPrevExists();
void incPrev();
void decPrev();
Object *beginClass(char *className, char *parentName, Object *typeArgs, bool isPrimitive);
void doneClass(Object * tree);
Object *beginFunction(char *funcName, char *returnType, char *returnGenericType, Object * parameters);
void doneFunction(Object * tree);
Object *beginConstructor(Object * parameters);
void doneConstructor(Object * tree);
Object *beginDestructor(Object * parameters);
void doneDestructor(Object * tree);
Object *funcParameters(Object * tree, char *paramType, char *paramName);
Object *concatParams(Object * existing, Object * newParam);
Object *declareVariable(char *name, char *type);
Object *conjugateAssign(Object * subject, Object * verb, Object * objects);
Object *conjugate(Object * lhs, Object * verb, Object * rhs);
Object *conjugateConditional(Object * lhs, Object * verb, Object * rhs);
Object *injectC(char *code);
Object *verbAssignment(char *verb);
Object *verbMathOp(char *verb);
Object *verbComparison(char *verb);
Object *verbTernary();
Object *verbCondReturn();
Object *verbIdent(char *verb);
Object *verbDestructor();
Object *verbGetObjAtIdx();
Object *verbPutObjAtIdx();
Object *sVerbIdent(char *staticVerb);
Object *verbCtor(char *type, char *ytype);
Object *parenthesize(Object * expr);
Object *objectIdent(char *ident);
Object *objectNewIdent(char *ident);
Object *objectUnmarkedNewIdent(char *ident);
Object *objectSelfIdent(char *ident);
Object *objectfloat(float f);
Object *objectInt(int i);
Object *objectChar(char *c);
Object *objectPrev();
Object *objectPlaceHolderType(char *ident);
Object *objectString(char *string);
Object *conjugateAccessorIdent(Object *subject, char *field);
Object *createCodeBlock(Object * expression);
float simplifyfloat(float left, char *op, float right);
int simplifyInt(int left, char *op, int right);
#endif