diff options
Diffstat (limited to 'src/meantools.c')
-rw-r--r-- | src/meantools.c | 116 |
1 files changed, 116 insertions, 0 deletions
diff --git a/src/meantools.c b/src/meantools.c new file mode 100644 index 0000000..f45c376 --- /dev/null +++ b/src/meantools.c @@ -0,0 +1,116 @@ +/* +Copyright 2015 Ian Jauslin + +Licensed under the Apache License, Version 2.0 (the "License"); +you may not use this file except in compliance with the License. +You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +See the License for the specific language governing permissions and +limitations under the License. +*/ + +/* +meantools + +Utility to perform various operations on flow equations + +*/ + + +#include <stdio.h> +#include <stdlib.h> + +// pre-compiler definitions +#include "definitions.cpp" + +// grouped representation of polynomials +#include "grouped_polynomial.h" +// command line parser +#include "cli_parser.h" +// parse input file +#include "parse_file.h" +// arrays +#include "array.h" +// string functions +#include "istring.h" +// tools +#include "meantools_exp.h" +#include "meantools_deriv.h" +#include "meantools_eval.h" + +#define EXP_COMMAND 1 +#define DERIV_COMMAND 2 +#define EVAL_COMMAND 3 + +// read cli arguments +int read_args_meantools(int argc,const char* argv[], Str_Array* str_args, Meantools_Options* opts); +// print usage message +int print_usage_meantools(); + + +int main (int argc, const char* argv[]){ + // string arguments + Str_Array str_args; + // options + Meantools_Options opts; + + // read command-line arguments + read_args_meantools(argc,argv,&str_args, &opts); + + switch(opts.command){ + case EXP_COMMAND: tool_exp(str_args); + break; + case DERIV_COMMAND: tool_deriv(str_args,opts); + break; + case EVAL_COMMAND: tool_eval(str_args,opts); + break; + } + + //free memory + free_Str_Array(str_args); + return(0); +} + + +// parse command-line arguments +int read_args_meantools(int argc,const char* argv[], Str_Array* str_args, Meantools_Options* opts){ + + // if there are no arguments + if(argc==1){ + print_usage_meantools(); + exit(-1); + } + + if(str_cmp((char*)argv[1],"exp")==1){ + (*opts).command=EXP_COMMAND; + tool_exp_read_args(argc, argv, str_args); + } + else if(str_cmp((char*)argv[1],"derive")==1){ + (*opts).command=DERIV_COMMAND; + tool_deriv_read_args(argc, argv, str_args, opts); + } + else if(str_cmp((char*)argv[1],"eval")==1){ + (*opts).command=EVAL_COMMAND; + tool_eval_read_args(argc, argv, str_args, opts); + } + else{ + print_usage_meantools(); + exit(-1); + } + + return(0); +} + +// print usage message +int print_usage_meantools(){ + printf("\nusage:\n meantools exp <filename>\n meantools derive [-d derivatives] -V <variables> <filename>\n meantools eval -R <rccs> <filename>\n\n"); + return(0); +} + + + |