int parsermain()
{
    ifp = fopen("lexemelist.txt", "r");
    ofp = fopen("mcode.txt","w");

    PROGRAM();
    fclose(ifp);
    fclose(ofp);
}
Exemple #2
0
// kick off the parser logic, determine success
APTNode* parse(void)
{
	APTNode* programNode = PROGRAM();
	if (strcmp(currentTok.sym, "EOFtk") == 0)
	{
		printf("Parse Completed Successfully.\n");
		return programNode;
	} else errMsg("eoftk");
	return NULL;
}
Exemple #3
0
int main(int argc, char *argv[]) {
  if (argc < 2) error(usage);
  if (*argv[1] == '-') { debug = 1; --argc; ++argv; }
  if (argc < 2) error(usage);
  openinfile(argv[1]);
  init();
  if (!PROGRAM()) error("Syntax error");
  fclose(inf);
  return 0;
}
Exemple #4
0
void PROGRAM(void){
	/*PROGRAM ::= FUNCTIONDEFINITION PROGRAM | eof*/
	switch (l){
	case KW_BOOLEAN: case KW_FLOAT: case KW_INT: case KW_VOID: {					/*expand the parse-tree node PROGRAM with the children (FUNCTIONDEFINITION, PROGRAM)*/
																					FUNCTIONDEFINITION(); PROGRAM(); return;
	}
	case EOF: {
																					eat(EOF);
																					/*Input is in the language. Terminating.*/
																					exit(0);
	}
	default:																		StdError(__func__);
	}
}
Exemple #5
0
int syntakticka_anal() {		//pomocna funkce pro kontrolu cele syntakticke analyzy v main.c souboru
	int navrat;

	tokenInit(&token);
	token = getNextToken();
	if(token.stav == s_lex_error) {
		navrat = S_LEXIKALNI_CHYBA;
	}
	else
	navrat = PROGRAM();
    tokenFree(&token);
    if(navrat == S_BEZ_CHYB) {
    	navrat = TestFunction(ptrhtGlobal);
    }
  	return navrat;
}
int parsermain(int argc, char** argv)
{
    ifp = fopen("lexemelist.txt", "r");
    ofp = fopen("mcode.txt","w");
    //For command directive "-a"
    if(argc == 2)
    {
       if(!strcmp(argv[1],"print"))
       {
          consoleFlag = 1;
       }
    }

    PROGRAM();
    fclose(ifp);
    fclose(ofp);
}
Exemple #7
0
int main(int argc, char* argv[]){
	if (argc < 2)
		yyin = stdin;
	else {
		yyin = fopen(argv[1], "r");
		if (yyin == NULL) {
			fprintf(stderr, "Fehler: Konnte Datei %s nicht zum lesen oeffnen.\n", argv[1]);
			exit(-1);
		}
	}

/*initialize the lookahead to the first two terminals; or to the first terminal and -1 if the first terminal is EOF*/
	move_lookahead_ahead();
	move_lookahead_ahead();

/*recursive descent begins here*/
PROGRAM();
/*this is never executed*/
fprintf(stderr, "BUG: This line should never be executed.\n");
return 666;
}
Exemple #8
0
/*====================================================================*/
int linkCommarea(DFHEIBLK *inDfheiptr,
                TraceParms* inTraceParms,
                CICSProgramDesc* pProgramDesc,
                Message* pRequestMessage,
                Message* pResponseMessage) {
    char* inputContent;
    dfheiptr = inDfheiptr;
    g_pTraceParms = inTraceParms;
    initLog(dfheiptr, inTraceParms);

    if (g_pTraceParms->traceMode == TRUE_CODE) {
       traceMessage(MODULE_NAME, "Entered linkCommarea");
    }

    if (OK_CODE != checkCommarea(pProgramDesc, pRequestMessage)) {
        return ERROR_CODE;
    }

    /* The commarea expected by the target program might be larger
     * than the content of the incoming message part. In this case,
     * we need to rebuild the commarea. */
    if (pProgramDesc->CICSLength >
              pRequestMessage->pParts->size.as_int) {
        reallocContent(pProgramDesc, pRequestMessage->pParts);
    }
    inputContent = pRequestMessage->pParts->content;

    /* COMMENT OUT UNLESS STORAGE DEBUGGING
    sprintf(g_traceMessage, "Storage before LINK PROGRAM(%s)",
          pProgramDesc->CICSProgram);
    traceMessage(MODULE_NAME, g_traceMessage);
    traceStorage(); */
    
     /*  Now link to CICS program and check for errors                */
    if (strlen(pProgramDesc->CICSSysID) == 0) {
        if (FALSE_CODE == pProgramDesc->CICSSyncOnReturn) {
            if (strlen(pProgramDesc->CICSTransID) == 0) {
                EXEC CICS LINK
                          PROGRAM(pProgramDesc->CICSProgram)
                          COMMAREA(inputContent)
                          LENGTH(pProgramDesc->CICSLength)
                          DATALENGTH(pProgramDesc->CICSDataLength)
                          RESP(g_cicsResp) RESP2(g_cicsResp2);
            } else {
                EXEC CICS LINK
                          PROGRAM(pProgramDesc->CICSProgram)
                          COMMAREA(inputContent)
                          LENGTH(pProgramDesc->CICSLength)
                          DATALENGTH(pProgramDesc->CICSDataLength)
                          TRANSID(pProgramDesc->CICSTransID)
                          RESP(g_cicsResp) RESP2(g_cicsResp2);
            }
        } else {
            if (strlen(pProgramDesc->CICSTransID) == 0) {
                EXEC CICS LINK
                          PROGRAM(pProgramDesc->CICSProgram)
                          COMMAREA(inputContent)
                          LENGTH(pProgramDesc->CICSLength)
                          DATALENGTH(pProgramDesc->CICSDataLength)
                          SYNCONRETURN
                          RESP(g_cicsResp) RESP2(g_cicsResp2);
            } else {
                EXEC CICS LINK
                          PROGRAM(pProgramDesc->CICSProgram)
                          COMMAREA(inputContent)
                          LENGTH(pProgramDesc->CICSLength)
                          DATALENGTH(pProgramDesc->CICSDataLength)
                          TRANSID(pProgramDesc->CICSTransID)
                          SYNCONRETURN
                          RESP(g_cicsResp) RESP2(g_cicsResp2);
            }
        }
    } else {
        if (FALSE_CODE == pProgramDesc->CICSSyncOnReturn) {
            if (strlen(pProgramDesc->CICSTransID) == 0) {
                EXEC CICS LINK
                          PROGRAM(pProgramDesc->CICSProgram)
                          COMMAREA(inputContent)
                          LENGTH(pProgramDesc->CICSLength)
                          DATALENGTH(pProgramDesc->CICSDataLength)
                          SYSID(pProgramDesc->CICSSysID)
                          RESP(g_cicsResp) RESP2(g_cicsResp2);
            } else {
                EXEC CICS LINK
                          PROGRAM(pProgramDesc->CICSProgram)
                          COMMAREA(inputContent)
                          LENGTH(pProgramDesc->CICSLength)
                          DATALENGTH(pProgramDesc->CICSDataLength)
                          SYSID(pProgramDesc->CICSSysID)
                          TRANSID(pProgramDesc->CICSTransID)
                          RESP(g_cicsResp) RESP2(g_cicsResp2);
            }
        } else {
            if (strlen(pProgramDesc->CICSTransID) == 0) {
                EXEC CICS LINK
                          PROGRAM(pProgramDesc->CICSProgram)
                          COMMAREA(inputContent)
                          LENGTH(pProgramDesc->CICSLength)
                          DATALENGTH(pProgramDesc->CICSDataLength)
                          SYSID(pProgramDesc->CICSSysID)
                          SYNCONRETURN
                          RESP(g_cicsResp) RESP2(g_cicsResp2);
            } else {
                EXEC CICS LINK
                          PROGRAM(pProgramDesc->CICSProgram)
                          COMMAREA(inputContent)
                          LENGTH(pProgramDesc->CICSLength)
                          DATALENGTH(pProgramDesc->CICSDataLength)
                          SYSID(pProgramDesc->CICSSysID)
                          TRANSID(pProgramDesc->CICSTransID)
                          SYNCONRETURN
                          RESP(g_cicsResp) RESP2(g_cicsResp2);
            }
        }
    }

    if (g_cicsResp != DFHRESP(NORMAL)) {
        logCicsError(MODULE_NAME, "LINK COMMAREA",
                     g_cicsResp,g_cicsResp2);
        return ERROR_CODE;
    }

    /* COMMENT OUT UNLESS STORAGE DEBUGGING
    sprintf(g_traceMessage, "Storage after LINK PROGRAM(%s)",
          pProgramDesc->CICSProgram);
    traceMessage(MODULE_NAME, g_traceMessage);
    traceStorage(); */
    
    if (OK_CODE != formatCommareaResponse(
                   pProgramDesc, pRequestMessage, pResponseMessage)) {
        return ERROR_CODE;
    }

    if (g_pTraceParms->traceMode == TRUE_CODE) {
       traceMessage(MODULE_NAME, "Return from linkCommarea");
    }

    return OK_CODE;
}