예제 #1
0
파일: parse.c 프로젝트: rioki/d16
void read_instruction()
{
    instruction_t instr = {0};
    
    // skip empty lines
    if (next_token == EOL_TOKEN || next_token == EOF_TOKEN)
    {
        read_token();
        return;
    }
    
    if (next_token == LABEL_TOKEN)
    {
        read_label(&instr.label);
    }
    else
    {
        instr.label = 0;
    }
    
    read_opcode(&instr.opcode);
    
    if (next_token != EOL_TOKEN)
    {
        read_argument(&instr.arg1);
    }
    
    if (next_token == COMMA_TOKEN)
    {
    
        read_token();
        assert(token == COMMA_TOKEN);
        
        read_argument(&instr.arg2);    
    }
    
    read_token();
    if (token != EOL_TOKEN)
    {
        fprintf(stderr, "%s:%d: error: To much input.\n", get_scan_file(), get_scan_line());
        result = -1;  

        recover_error();
        return;
    }
    
    add_instruction(prog, instr);
}
예제 #2
0
int main(int argc, char** argv) {
    read_argument(argc, argv, &is);

    void (**simulation)(xsim_t*, int) = (void(**)(xsim_t*, int)) malloc(sizeof(void(**)(xsim_t*, int)) * is.nb_nodes);
    for (int i=0 ; i<is.nb_nodes ; i++) {
        simulation[i] = sc_son_body_model1;
    }
    xsim_spawner(simulation, is.nb_nodes, is.nb_ifaces, is.topology);

    free(simulation);
    return 0;
}
예제 #3
0
int main(int argc, char **argv)
{
    int num_of_hospitals = 0;
    hospital_t *hosp;

    if (read_argument(argc, argv) == 'h') {
        print_manual();
        return 0;
    }

    hosp = read_information_for_hospitals(&num_of_hospitals);
    printf("Do you want to see the information of hospitals?");
    if(confirm_choice()) {
        print_information_of_hospitals(hosp, num_of_hospitals);
    }  
    while (add_patient(hosp, num_of_hospitals));
    print_information_of_hospitals(hosp, num_of_hospitals);

    free_memory(hosp, num_of_hospitals);
    return 0;
}