Home About Applications Software License Documentation Download Community



Main Page | Class Hierarchy | Class List | Directories | File List | Class Members | File Members

keycc.h

Go to the documentation of this file.
00001 #include "environ.h"
00002 
00003 #if 0
00004 /* Single */
00005 ARRAY
00006 
00007 /* 'Definition' template examples */
00008 ARRAY(int)               [template = "ARRAY",      op_count = 0, operation = NULL,    argc = 1, argv = "int"]
00009 LIST(TPoint)             [template = "LIST",       op_count = 0, operation = NULL,    argc = 1, argv = "TPoint"]
00010 CString(test)            [template = "CString", object = "test",   operation = NULL, argc = 0]
00011 MODULE:INTERFACE         [template = "MODULE",     op_count = 1, operation = "INTERFACE", argc = 0]
00012 CString::print(void)     [template = "CString",    op_count = 1, operation = "print", argc = 1, argv = "void"]
00013 THIS_BEGIN               [template = "THIS_BEGIN", op_count = 0, operation = NULL,    argc = 0]
00014 class CString : CObject("String", "text") {
00015    [template = "class", op_count = 2, operation = "CString", "CObject", argc = 2, argv = "String", "text"]
00016 
00017 /* 'Object' template examples */
00018 ARRAY(darray).set("text", 5)   [template = "ARRAY",   object = "darray", operation = "set", argc = 1, argv = ""text"", "5"]
00019 ARRAY(darray).data[3]          [template = "ARRAY",   object = "darray", operation = "data", argc = 0]
00020 CString(test).print            [template = "CString", object = "test",   operation = "print", argc = 0]
00021 
00022 
00023 #endif
00024 
00025 bool ismchar(char c);
00026 char *strmatch(char *str);
00027 
00028 typedef enum {
00029   CC_gcc,
00030   CC_cl,
00031   CC_m68k_palmos_gcc,
00032 } ECCompiler;
00033 
00034 #define MAX_LINE 2000
00035 
00036 typedef enum {
00037    BT_Statement,
00038    BT_BlockBeginPre,
00039    BT_BlockBegin,
00040    BT_BlockBeginPost,
00041    BT_BlockEndPre,
00042    BT_BlockEnd,
00043    BT_BlockEndPost,
00044    BT_Separator,
00045    BT_Template,
00046 } EBlockType;
00047 
00048 typedef enum {
00049   TT_Single,
00050   TT_Definition,
00051   TT_Object,
00052 } ETemplateType;
00053 
00054 typedef struct {
00055    ETemplateType type;
00056    char *template;
00057    int op_count;
00058    char *operation[10];
00059    char *object;
00060    int argc;
00061    char *argv[40];
00062 } TTemplateArgs;
00063 
00064 struct TEMPLATE;
00065 
00066 typedef char *(*TEMPLATE_FN)(struct TEMPLATE *this,
00067                              EBlockType type, bool current_file, TTemplateArgs *args,
00068                              int dest_length, char *dest,
00069                              int extra_length, char *extra);
00070 
00071 typedef struct TEMPLATE {
00072    char name[80];
00073    TEMPLATE_FN template_fn;
00074    bool complex;
00075 } TTemplate;
00076 
00077 struct PREPROCESS;
00078 extern struct PREPROCESS preprocess;
00079 
00080 void PREPROCESS_name_convert(char *name);
00081 ECCompiler PREPROCESS_CCompiler(struct PREPROCESS *this);
00082 char *PREPROCESS_current_filename(struct PREPROCESS *this);
00083 int PREPROCESS_cobjclass_offset(struct PREPROCESS *this);
00084 int PREPROCESS_cobjclass_vtbl_offset(struct PREPROCESS *this);
00085 void PREPROCESS_template_register(struct PREPROCESS *this, TTemplate *template);
00086 

Generated on Sat Feb 26 15:54:37 2005 for Keystone by  doxygen 1.4.1