From e59fd77eee58d898225b774fcc496a1598152b28 Mon Sep 17 00:00:00 2001 From: pmf Date: Fri, 30 May 2008 15:15:20 +0000 Subject: [PATCH] remove parser.c and parser.h These files are no longer needed since the port of lttv to markers git-svn-id: http://ltt.polymtl.ca/svn@2920 04897980-b3bd-0310-b5e0-8ef037075253 --- ltt/branches/poly/ltt/parser.c | 1670 -------------------------------- ltt/branches/poly/ltt/parser.h | 240 ----- 2 files changed, 1910 deletions(-) delete mode 100644 ltt/branches/poly/ltt/parser.c delete mode 100644 ltt/branches/poly/ltt/parser.h diff --git a/ltt/branches/poly/ltt/parser.c b/ltt/branches/poly/ltt/parser.c deleted file mode 100644 index 7ac11e7e..00000000 --- a/ltt/branches/poly/ltt/parser.c +++ /dev/null @@ -1,1670 +0,0 @@ - - - -/* - -parser.c: Generate helper declarations and functions to trace events - from an event description file. - - Copyright (C) 2005, Mathieu Desnoyers - Copyright (C) 2002, Xianxiu Yang - Copyright (C) 2002, Michel Dagenais - This program is free software; you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation; version 2 of the License. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program; if not, write to the Free Software - Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA -*/ - -/* This program reads the ".xml" event definitions input files - and constructs structure for each event. - - The program uses a very simple tokenizer, called from a hand written - recursive descent parser to fill a data structure describing the events. - The result is a sequence of events definitions which refer to type - definitions. - - A table of named types is maintained to allow refering to types by name - when the same type is used at several places. Finally a sequence of - all types is maintained to facilitate the freeing of all type - information when the processing of an ".xml" file is finished. */ - -#include -#include -#include -#include -#include -#include -#include - -#include "parser.h" - - -char *intOutputTypes[] = { - "int8_t", "int16_t", "int32_t", "int64_t" }; - -char *uintOutputTypes[] = { - "uint8_t", "uint16_t", "uint32_t", "uint64_t" }; - -char *floatOutputTypes[] = { - "undef", "undef", "float", "double" }; - - - - -/* helper function */ -void strupper(char *string) -{ - char *ptr = string; - - while(*ptr != '\0') { - *ptr = toupper(*ptr); - ptr++; - } -} - - -int getSizeindex(unsigned int value) -{ - switch(value) { - case 1: - return 0; - case 2: - return 1; - case 4: - return 2; - case 8: - return 3; - default: - printf("Error : unknown value size %d\n", value); - exit(-1); - } -} - -/***************************************************************************** - *Function name - * getSize : translate from string to integer - *Input params - * in : input file handle - *Return values - * size - *****************************************************************************/ - -unsigned long long int getSize(parse_file_t *in) -{ - char *token, *token2; - unsigned long long int ret; - - token = getToken(in); - - - if(in->type == QUOTEDSTRING) { - in->type = NUMBER; - token2 = token; - do { - if (!isdigit(*token2)) { - in->type = QUOTEDSTRING; - break; - } - } while (*(++token2) != '\0'); - } - - if(in->type == NUMBER) { - ret = strtoull(token, NULL, 0); - } else { - goto error; - } - - return ret; -error: - in->error(in,"incorrect size specification"); - return -1; -} - -/***************************************************************************** - *Function name - * error_callback : print out error info - *Input params - * in : input file handle - * msg : message to be printed - ****************************************************************************/ - -void error_callback(parse_file_t *in, char *msg) -{ - if(in) - printf("Error in file %s, line %d: %s\n", in->name, in->lineno, msg); - else - printf("%s\n",msg); - assert(0); - exit(1); -} - -/***************************************************************************** - *Function name - * memAlloc : allocate memory - *Input params - * size : required memory size - *return value - * void * : pointer to allocate memory or NULL - ****************************************************************************/ - -void * memAlloc(int size) -{ - void * addr; - if(size == 0) return NULL; - addr = malloc(size); - if(!addr){ - printf("Failed to allocate memory"); - exit(1); - } - return addr; -} - -/***************************************************************************** - *Function name - * allocAndCopy : allocate memory and initialize it - *Input params - * str : string to be put in memory - *return value - * char * : pointer to allocate memory or NULL - ****************************************************************************/ - -char *allocAndCopy(char *str) -{ - char * addr; - if(str == NULL) return NULL; - addr = (char *)memAlloc(strlen(str)+1); - strcpy(addr,str); - return addr; -} - -/************************************************************************** - * Function : - * getTypeAttributes - * Description : - * Read the attribute from the input file. - * - * Parameters : - * in , input file handle. - * t , the type descriptor to fill. - * - **************************************************************************/ - -void getTypeAttributes(parse_file_t *in, type_descriptor_t *t, - sequence_t * unnamed_types, table_t * named_types) -{ - char * token; - int car; - - t->fmt = NULL; - t->size = 0; - t->custom_write = 0; - t->network = 0; - - while(1) { - token = getToken(in); - if(strcmp("/",token) == 0 || strcmp(">",token) == 0){ - ungetToken(in); - break; - } - - if(!strcmp("format",token)) { - getEqual(in); - t->fmt = allocAndCopy(getQuotedString(in)); - // printf("%s - ",t->fmt); - //} else if(!strcmp("name",token)) { - // getEqual(in); - // car = seekNextChar(in); - // if(car == EOF) in->error(in,"name was expected"); - // else if(car == '\"') t->type_name = allocAndCopy(getQuotedString(in)); - // else t->type_name = allocAndCopy(getName(in)); - } else if(!strcmp("size",token)) { - getEqual(in); - t->size = getSize(in); - } else if(!strcmp("custom_write", token)) { - t->custom_write = 1; - } else if(!strcmp("byte_order",token)) { - getEqual(in); - car = seekNextChar(in); - if(car == EOF) in->error(in,"byte order was expected (network?)"); - else if(car == '\"') token = getQuotedString(in); - else token = getName(in); - if(!strcmp("network", token)) { - t->network = 1; - } - } else if(!strcmp("write",token)) { - getEqual(in); - car = seekNextChar(in); - if(car == EOF) in->error(in,"write type was expected (custom?)"); - else if(car == '\"') token = getQuotedString(in); - else token = getName(in); - if(!strcmp("custom", token)) { - t->custom_write = 1; - } - } - } -} - -/************************************************************************** - * Function : - * getEventAttributes - * Description : - * Read the attribute from the input file. - * - * Parameters : - * in , input file handle. - * ev , the event to fill. - * - **************************************************************************/ - -void getEventAttributes(parse_file_t *in, event_t *ev) -{ - char * token; - int car; - - ev->name = NULL; - ev->per_trace = 0; - ev->per_tracefile = 0; - ev->param_buffer = 0; - ev->no_instrument_function = 0; - ev->high_priority = 0; - ev->force = 0; - ev->compact_data = 0; - - while(1) { - token = getToken(in); - if(strcmp("/",token) == 0 || strcmp(">",token) == 0){ - ungetToken(in); - break; - } - - if(!strcmp("name",token)) { - getEqual(in); - car = seekNextChar(in); - if(car == EOF) in->error(in,"name was expected"); - else if(car == '\"') ev->name = allocAndCopy(getQuotedString(in)); - else ev->name = allocAndCopy(getName(in)); - } else if(!strcmp("scope", token)) { - getEqual(in); - car = seekNextChar(in); - if(car == EOF) in->error(in,"scope was expected"); - else if(car == '\"') token = getQuotedString(in); - else token = getName(in); - if(!strcmp(token, "trace")) ev->per_trace = 1; - else if(!strcmp(token, "tracefile")) ev->per_tracefile = 1; - } else if(!strcmp("param", token)) { - getEqual(in); - car = seekNextChar(in); - if(car == EOF) in->error(in,"parameter type was expected"); - else if(car == '\"') token = getQuotedString(in); - else token = getName(in); - if(!strcmp(token, "buffer")) ev->param_buffer = 1; - } else if(!strcmp("attribute", token)) { - getEqual(in); - car = seekNextChar(in); - if(car == EOF) in->error(in,"attribute was expected"); - else if(car == '\"') token = getQuotedString(in); - else token = getName(in); - if(!strcmp(token, "no_instrument_function")) - ev->no_instrument_function = 1; - else if(!strcmp(token, "high_priority")) - ev->high_priority = 1; - else if(!strcmp(token, "force")) - ev->force = 1; - else if(!strcmp(token, "compact_data")) - ev->compact_data = 1; - } - } -} - -/************************************************************************** - * Function : - * getFacilityAttributes - * Description : - * Read the attribute from the input file. - * - * Parameters : - * in , input file handle. - * fac , the facility to fill. - * - **************************************************************************/ - -void getFacilityAttributes(parse_file_t *in, facility_t *fac) -{ - char * token; - int car; - - fac->name = NULL; - fac->arch = NULL; - fac->align = 1; - fac->user = 0; - - while(1) { - token = getToken(in); - if(strcmp("/",token) == 0 || strcmp(">",token) == 0){ - ungetToken(in); - break; - } - - if(!strcmp("name",token)) { - getEqual(in); - car = seekNextChar(in); - if(car == EOF) in->error(in,"name was expected"); - else if(car == '\"') fac->name = allocAndCopy(getQuotedString(in)); - else fac->name = allocAndCopy(getName(in)); - if(!strncmp(fac->name, "user_", sizeof("user_")-1)) - fac->user = 1; - } else if(!strcmp("arch", token)) { - getEqual(in); - car = seekNextChar(in); - if(car == '\"') fac->arch = allocAndCopy(getQuotedString(in)); - else fac->arch = allocAndCopy(getName(in)); - } else if(!strcmp("align", token)) { - getEqual(in); - fac->align = getSize(in); - } - - } -} - -/************************************************************************** - * Function : - * getFieldAttributes - * Description : - * Read the attribute from the input file. - * - * Parameters : - * in , input file handle. - * f , the field to fill. - * - **************************************************************************/ - -void getFieldAttributes(parse_file_t *in, field_t *f) -{ - char * token; - int car; - - f->name = NULL; - - while(1) { - token = getToken(in); - if(strcmp("/",token) == 0 || strcmp(">",token) == 0){ - ungetToken(in); - break; - } - - if(!strcmp("name",token)) { - getEqual(in); - car = seekNextChar(in); - if(car == EOF) in->error(in,"name was expected"); - else if(car == '\"') f->name = allocAndCopy(getQuotedString(in)); - else f->name = allocAndCopy(getName(in)); - } - } -} - -char *getNameAttribute(parse_file_t *in) -{ - char * token; - char *name = NULL; - int car; - - while(1) { - token = getToken(in); - if(!strcmp("name",token)) { - getEqual(in); - car = seekNextChar(in); - if(car == EOF) in->error(in,"name was expected"); - else if(car == '\"') name = allocAndCopy(getQuotedString(in)); - else name = allocAndCopy(getName(in)); - } else { - ungetToken(in); - break; - } - - } - if(name == NULL) in->error(in, "Name was expected"); - return name; -} - - - -//for