Esempio n. 1
0
bool
read_assembly_file (int context, char *path, char *file_name)
{
  FILE *file = fopen (path, "rt");

  if (file == NULL)
    {
      error ("Cannot open file: `%s'\n", path);
      return false;
    }
  else
    {
      if (file_name == NULL) {
        file_name = strrchr(path, '/');
        file_name = file_name == NULL ? path : file_name + 1;
      }
      initialize_scanner (file, file_name);
      initialize_parser (path);

      while (!yyparse ()) ;

      fclose (file);
      flush_local_labels (!parse_error_occurred);
      end_of_assembly_file ();
      return true;
    }
}
Esempio n. 2
0
static int cdn_html_filter(ap_filter_t * f, apr_bucket_brigade * bb)
{
  apr_bucket *b;
  const char *buf = 0;
  apr_size_t bytes = 0;

  /* now do HTML filtering if necessary, and pass the brigade onward */
  saxctxt *ctxt = check_html_filter_init(f);
  if (!ctxt)
    return ap_pass_brigade(f->next, bb);

  for(b = APR_BRIGADE_FIRST(bb); b != APR_BRIGADE_SENTINEL(bb); b = APR_BUCKET_NEXT(b)) {
    if(APR_BUCKET_IS_EOS(b) || APR_BUCKET_IS_FLUSH(b)) {
      consume_buffer(ctxt, buf, 0, 1);
      APR_BUCKET_REMOVE(b);
      APR_BRIGADE_INSERT_TAIL(ctxt->bb, b);
      ap_pass_brigade(ctxt->f->next, ctxt->bb);
      return APR_SUCCESS;
    }

    if(apr_bucket_read(b, &buf, &bytes, APR_BLOCK_READ) == APR_SUCCESS && buf) {
      if(ctxt->parser == NULL) {

        /*
         * for now, always output utf-8; we could incorporate
         * mod_proxy_html's output transcoding with little problem if
         * necessary
         */
        ap_set_content_type(f->r, "text/html;charset=utf-8");

        if(!initialize_parser(f, ctxt, &buf, bytes)) {
          apr_status_t rv = ap_pass_brigade(ctxt->f->next, bb);
          ap_remove_output_filter(f);
          return rv;
        } else
          ap_fputs(f->next, ctxt->bb, ctxt->cfg->doctype);
      }
      consume_buffer(ctxt, buf, bytes, 0);
    }

  }

  /*ap_fflush(ctxt->f->next, ctxt->bb) ; */      /* uncomment for debug */
  apr_brigade_cleanup(bb);
  return APR_SUCCESS;
}
Esempio n. 3
0
PyMODINIT_FUNC initjit(void)
{   
    PyThunk_Init();
    initialize_thunk_methods();
    initialize_operation();
    initialize_thunk_as_number();
    initialize_thunk_as_sequence();
    initialize_parser();
    initialize_compiler();
    initialize_scheduler();
    initialize_thunk_as_mapping();

    //initialize module
    PyObject *m = Py_InitModule3("jit", module_methods, module_docstring);
    if (m == NULL)
        return;

   	create_threads();
}
Esempio n. 4
0
/*
** Get all tetriminos from dir tetriminos
*/
int		initialize_files(t_list *list, t_tetris *game)
{
  int		count;
  t_files	file;
  t_parser	parser;

  count = 0;
  init_parser(&parser);
  if ((file.dir = opendir("./tetriminos/")) == NULL)
    exit_tetris("Error with opendir", -1);
  while ((file.dirent = readdir(file.dir)))
    {
      if (file.dirent->d_type == DT_REG)
	{
	  if (initialize_parser(&file, &parser, list, game))
	    count++;
	  free(file.link);
	  close(file.fd);
	}
    }
  closedir(file.dir);
  return ((count != 0) ? (1) : (0));
}
Esempio n. 5
0
int main(void){
  configure_nvic();
  initialize_i2c(I2C_BASE_ADDRESS + read_i2c_address());
  // Configure all of the hardware and internal state
  initialize_motion_queue();
  initialize_parser();
  reset_parameters();
  initialize_stepper_state();
  set_microstepping(DEFAULT_MICROSTEPPING);
  reset_hardware();
  float_sync_line();
  while(1){
    if(parser.status == PARSER_ERR){
      send_response(IMC_RSP_UNKNOWN,0);
      initialize_parser();
      continue;
    }
    if(parser.status == PARSER_NEW_EVENT){
      switch(parser.packet_type){
      case IMC_MSG_INITIALIZE:
	initialize_motion_queue();
	initialize_parser();
	// Unlike out first initialization round, don't reset parameters
	initialize_stepper_state();
	float_sync_line();
 	response.init.slave_hw_ver = 0;
	response.init.slave_fw_ver = 0;
	response.init.queue_depth = MOTION_QUEUE_LENGTH;
	send_response(IMC_RSP_OK,sizeof(rsp_initialize_t));
	break;
      case IMC_MSG_GETPARAM:
	handle_get_parameter(&parser.packet.get_param, &response.param);
	send_response(IMC_RSP_OK,sizeof(rsp_get_param_t));
	break;
      case IMC_MSG_SETPARAM:
	handle_set_parameter(&parser.packet.set_param);
	send_response(IMC_RSP_OK,0);
	break;	
      case IMC_MSG_QUEUEMOVE:
	{
	  int space = enqueue_block(&parser.packet.move);
	  send_response(space < 0 ? IMC_RSP_QUEUEFULL : IMC_RSP_OK,0);
	  // If we're adding moves in idle state, make sure that the sync interface is listening
	  if(st.state == STATE_IDLE)
	    enable_sync_interrupt();
	}
	break;
      case IMC_MSG_STATUS:
	response.status.queued_moves = queue_length();
	if(st.state == STATE_ERROR){
	  response.status.status = parameters.error_low;
	}else{
	  response.status.status = IMC_ERR_NONE;
	}
	send_response(IMC_RSP_OK,sizeof(rsp_status_t));
	break;
      case IMC_MSG_HOME:
	send_response(IMC_RSP_OK,0);
	enter_homing_routine();
	break;
      case IMC_MSG_QUICKSTOP:
	send_response(IMC_RSP_ERROR,0);
	break;
      }
      initialize_parser();
    }
  }
}