OpenCOBOL 1.1pre-rel
|
#include "config.h"
#include <stdlib.h>
#include <string.h>
#include <ctype.h>
#include "cobc.h"
#include "tree.h"
#include "parser.h"
Go to the source code of this file.
Data Structures | |
struct | reserved |
Defines | |
#define | NUM_RESERVED_WORDS sizeof (reserved_words) / sizeof (struct reserved) |
#define | NUM_INTRINSICS sizeof(function_list) / sizeof(struct cb_intrinsic_table) |
Functions | |
static int | reserve_comp (const void *p1, const void *p2) |
static int | intrinsic_comp (const void *p1, const void *p2) |
cb_tree | lookup_system_name (const char *name) |
int | lookup_reserved_word (const char *name) |
struct cb_intrinsic_table * | lookup_intrinsic (const char *name, const int checkres) |
void | cb_list_reserved (void) |
void | cb_list_intrinsics (void) |
void | cb_list_mnemonics (void) |
void | cb_init_reserved (void) |
Variables | |
struct { | |
const char * name | |
enum cb_system_name_category category | |
const int token | |
cb_tree node | |
} | system_table [] |
static struct reserved | reserved_words [] |
static struct cb_intrinsic_table | function_list [] |
#define NUM_INTRINSICS sizeof(function_list) / sizeof(struct cb_intrinsic_table) |
Definition at line 878 of file reserved.c.
#define NUM_RESERVED_WORDS sizeof (reserved_words) / sizeof (struct reserved) |
Definition at line 615 of file reserved.c.
void cb_init_reserved | ( | void | ) |
Definition at line 1019 of file reserved.c.
{ int i; /* build system-name table */ for (i = 0; system_table[i].name != NULL; ++i) { system_table[i].node = cb_build_system_name (system_table[i].category, system_table[i].token); } }
void cb_list_intrinsics | ( | void | ) |
Definition at line 979 of file reserved.c.
{ const char *s; size_t i; size_t n; printf ("Intrinsic Function (Implemented Y/N)\n\n"); for (i = 0; i < NUM_INTRINSICS; ++i) { n = strlen (function_list[i].name); switch (n / 8) { case 0: s = "\t\t\t\t"; break; case 1: s = "\t\t\t"; break; case 2: s = "\t\t"; break; default: s = "\t"; break; } printf ("%s%s(%s)\n", function_list[i].name, s, function_list[i].implemented ? "Y" : "N"); } }
void cb_list_mnemonics | ( | void | ) |
Definition at line 1008 of file reserved.c.
{ size_t i; printf ("Mnemonic names\n\n"); for (i = 0; system_table[i].name != NULL; ++i) { printf ("%s\n", system_table[i].name); } }
void cb_list_reserved | ( | void | ) |
Definition at line 950 of file reserved.c.
{ const char *s; size_t i; size_t n; printf ("Reserved Words (Parsed Y/N)\n\n"); for (i = 0; i < NUM_RESERVED_WORDS; ++i) { n = strlen (reserved_words[i].name); switch (n / 8) { case 0: s = "\t\t\t\t"; break; case 1: s = "\t\t\t"; break; case 2: s = "\t\t"; break; default: s = "\t"; break; } printf ("%s%s(%s)\n", reserved_words[i].name, s, reserved_words[i].token != -1 ? "Y" : "N"); } }
static int intrinsic_comp | ( | const void * | p1, |
const void * | p2 | ||
) | [static] |
Definition at line 887 of file reserved.c.
{ return strcasecmp (p1, ((struct cb_intrinsic_table *)p2)->name); }
struct cb_intrinsic_table* lookup_intrinsic | ( | const char * | name, |
const int | checkres | ||
) | [read] |
Definition at line 929 of file reserved.c.
{ struct cb_intrinsic_table *cbp; struct noreserve *noresptr; if (checkres) { for (noresptr = norestab; noresptr; noresptr = noresptr->next) { if (strcasecmp (name, noresptr->noresword) == 0) { return NULL; } } } cbp = bsearch (name, function_list, NUM_INTRINSICS, sizeof (struct cb_intrinsic_table), intrinsic_comp); if (cbp && cbp->implemented) { return cbp; } return NULL; }
int lookup_reserved_word | ( | const char * | name | ) |
Definition at line 906 of file reserved.c.
{ struct reserved *p; struct noreserve *noresptr; p = bsearch (name, reserved_words, NUM_RESERVED_WORDS, sizeof (struct reserved), reserve_comp); if (!p) { return 0; } for (noresptr = norestab; noresptr; noresptr = noresptr->next) { if (strcasecmp (name, noresptr->noresword) == 0) { return 0; } } if (p->token != -1) { return p->token; } cb_error (_("'%s' reserved word, but not supported yet"), name); return 0; }
cb_tree lookup_system_name | ( | const char * | name | ) |
Definition at line 893 of file reserved.c.
{ int i; for (i = 0; system_table[i].name != NULL; ++i) { if (strcasecmp (name, system_table[i].name) == 0) { return system_table[i].node; } } return cb_error_node; }
static int reserve_comp | ( | const void * | p1, |
const void * | p2 | ||
) | [static] |
Definition at line 33 of file reserved.c.
struct cb_intrinsic_table function_list[] [static] |
Definition at line 620 of file reserved.c.
const char* name |
Definition at line 32 of file reserved.c.
Definition at line 35 of file reserved.c.
struct reserved reserved_words[] [static] |
Definition at line 74 of file reserved.c.
struct { ... } system_table[] [static] |
const int token |
Definition at line 34 of file reserved.c.