Beispiel #1
0
Datei: ucl.c Projekt: M-ike/work
static int ParseCommandLine(int argc, char *argv[])
{
	int i;

	for (i = 0; i < argc; ++i)
	{
		if (strncmp(argv[i], "-ext:", 5) == 0)
		{
			ExtName = argv[i] + 5;
		}
		else if (strcmp(argv[i], "-ignore") == 0)
		{
			i++;
			AddWhiteSpace(argv[i]);
		}
		else if (strcmp(argv[i], "-keyword") == 0)
		{
			i++;
			AddKeyword(argv[i]);
		}
		else if (strcmp(argv[i], "--dump-ast") == 0)
		{
			DumpAST = 1;
		}
		else if (strcmp(argv[i], "--dump-IR") == 0)
		{
			DumpIR = 1;
		} 
		else
			return i;
	}
	return i;
}
Beispiel #2
0
/* 在参数输入时,以下命令必须在最前边,源文件名在后边 */
static int ParseCommandLine (int argc, char *argv[])
{
    int i;
    
    UserIncPath = CreateVector (1);
    for (i = 0; i < argc; i++) {

        if (!strncmp (argv[i], "-ext:", 5)) {
            /* 设置汇编文件的扩展名 */
            ExtName = argv[i] + 5;
        } else if (!strcmp (argv[i], "-ignore")) {
            /* 添加要当成空白符处理的字符串 */
            AddWhiteSpace (argv[++i]);
        } else if (!strcmp (argv[i], "-keyword")) {
            /* 添加用户自定义关键字 */
            AddKeyword (argv[++i]);
        } else if (!strcmp (argv[i], "--dump-ast")) {
            /* 标志生成语法树 */
            DumpAST = 1;
        } else if (!strcmp (argv[i], "--dump-IR")) {
            /* 标志是否要生成中间代码 */
            DumpIR = 1;
        } else if (!strcmp (argv[i], "--test-lex")) {
            
            test_lex = 1;
        } else if (!strncmp (argv[i], "-I", 2)) {
            
            char *path;
            
            path = calloc (strlen (argv[i]+2) + 1, sizeof (char));
            strcpy (path, argv[i] + 2);
            INSERT_ITEM (UserIncPath, path);
        } else if (!strncmp (argv[i], "-VARINFO=", 9)) {
            
            VarInfo = atoi (argv[i] + 9);
            if (VarInfo > 7 || VarInfo < 0) 
                VarInfo = 0;
        } else if (!strcmp (argv[i], "--help")) { 
        
            #define HELP(help) PRINT ("%s\n", help);
            #include "include/confg/help.h"
            #undef  HELP
        } else if (!strcmp (argv[i], "--version")) {
            
            PRINT ("%s \n", VERSION);
        } else return i;
    } return i;
}