You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

50 lines
1.0 KiB

#include <inttypes.h>
9 years ago
#include "init.h"
#include "debug.h"
#include "object.h"
#include "globals.h"
#include "arifmetic.h"
9 years ago
#include "parser/parser.h"
#include "parser/grammatical.h"
#include "parser/lexical.h"
9 years ago
int ParseConfigFile(char* config)
{
yyscan_t scanner;
struct lexical_extra extra;
FILE* conffd;
int ret;
9 years ago
conffd=fopen(config,"r");
if(conffd==0)
{
COUT(ERROR)<<"Can't open file "<<config<<std::endl;
return 1;
}
extra.filename=config;
extra.inclevel=0;
extra.maxinclevel=10;
extra.curline=1;
extra.curpos=extra.curoffset=0;
9 years ago
conflex_init_extra(&extra,&scanner);
confset_in(conffd,scanner);
// {YYSTYPE qqq; while(conflex(&qqq,scanner)>0);}
ret=confparse(scanner);
9 years ago
conflex_destroy(scanner);
fclose(conffd);
return ret;
}
int RegisterArifmeticFunctions()
{
RegisterFunction("ADD",Arifm_Add);
RegisterFunction("SUB",Arifm_Sub);
RegisterFunction("MUL",Arifm_Mul);
RegisterFunction("DIV",Arifm_Div);
RegisterFunction("POW",Arifm_Pow);
RegisterFunction("POS",Arifm_Pos);
RegisterFunction("NEG",Arifm_Neg);
return 0;
9 years ago
}