Exemple #1
0
int f_for(ARG1)  {
    if (mode == -1) {
	if (for_mode == 1) fatal_error("for: only one for allow","");
        for_mode = 1;
        parse_loop(arg1, &for_start, &for_end, &for_step);
    }
    return 0;
}
Exemple #2
0
int		parse_args(int ac, char **av, t_zappy_parse *zappy_parse)
{
  int		err;

  init_zappy_parse(zappy_parse);
  if ((err = parse_loop(ac, av, zappy_parse)))
    return (err);
  if ((err = check_args(zappy_parse)))
    return (err);
  return (0);
}
Exemple #3
0
static int parse_animation_object(
    osux_event *ev, char **split, unsigned size)
{
    if (size < 8)
        return -OSUX_ERR_INVALID_EVENT_OBJECT;
    ev->object.layer = parse_layer(split[1]);
    ev->object.origin = parse_origin(split[2]);
    ev->object.filename = g_strdup(split[3]);
    ev->object.x = atoi(split[4]);
    ev->object.y = atoi(split[5]);
    ev->object.anim_frame_count = atoi(split[6]);
    ev->object.anim_frame_delay = atoi(split[7]);
    ev->object.anim_loop = EVENT_LOOP_FOREVER;
    if (size == 9)
        ev->object.anim_loop = parse_loop(split[8]);
    return 0;
}
Exemple #4
0
struct single *parse_single()
{
	struct single *s;

	s = parse_io();

	if (s != NULL)
		return s;

	s = parse_loop();

	if (s != NULL)
		return s;

	s = parse_if();

	if (s != NULL)
		return s;

	s = parse_assign();

	if (s != NULL)
		return s;

	s = parse_gtfo();

	if (s != NULL)
		return s;

	s = parse_halt();

	if (s != NULL)
		return s;

	return NULL;
}
Exemple #5
0
/* parse a compound- or a simple-command
 * (pipeline and lists are done outside this)
 * ----------------------------------------------------------------------- */
union node *parse_command(struct parser *p, int tempflags) {
  enum tok_flag tok;
  union node *command;
  union node **rptr;
 
  tok = parse_gettok(p, tempflags);

  switch(tok) {
    /* T_FOR begins an iteration statement */
    case T_FOR:
      command = parse_for(p);
      break;

    /* T_IF begins a case match statement */
    case T_CASE:
      command = parse_case(p);
      break;
      
    /* T_IF begins a conditional statement */
    case T_IF:
      command = parse_if(p);
      break;
      
    /* T_WHILE/T_UNTIL begin a for-loop statement */
    case T_WHILE:
    case T_UNTIL:
      command = parse_loop(p);
      break;
      
    /* T_LP/T_BEGIN start a grouping compound */
    case T_LP:
    case T_BEGIN:
      p->pushback++;
      command = parse_grouping(p);
      break;

    /* handle simple commands */
    case T_NAME:
    case T_WORD:
    case T_REDIR:
    case T_ASSIGN:
      p->pushback++;
      command = parse_simple_command(p);
      break;
    
    /* it wasn't a compound command, return now */
    default:
      p->pushback++;
      return NULL;
  }
      
  if(command) {
    /* they all can have redirections, so parse these now */
    rptr = &command->ncmd.rdir;

    /*
     * in the case of a simple command there are maybe already
     * redirections in the list (because in a simple command they
     * can appear between arguments), so skip to the end of the list.
     */
    while(*rptr)
      tree_next(rptr);

    while(parse_gettok(p, P_DEFAULT) & T_REDIR)
      tree_move(p->tree, rptr);
  }
  
  p->pushback++;

  return command;
}