示例#1
0
void
add_types(void)
{
    til_t *t = new_til("efi.til", "efi header types");
    parse_decls(t, efi_types, msg, HTI_PAK1);
    sort_til(t);
    efi_image_data_directory_struct = import_type(t, -1, "EFI_IMAGE_DATA_DIRECTORY");
    efi_image_te_header_struct = import_type(t, -1, "EFI_IMAGE_TE_HEADER");
    efi_image_section_header_struct = import_type(t, -1, "EFI_IMAGE_SECTION_HEADER");
    free_til(t);
}
示例#2
0
文件: parser.c 项目: Saruta/a2c
struct algo *parse_procedure()
{
  eat(PROCEDURE);
  eat(IDENTIFIER);
  char *ident = strdup(tok->val);
  eat(EOL);
  struct declarations *decls = parse_decls();
  eat(BEGIN); eat(EOL);
  instructionlist_t block = parse_block();
  eat(END); eat(ALGORITHM); eat(PROCEDURE); eat(IDENTIFIER);
  if (lookahead[0]->type == EOL) eat(EOL);
  return algo(ident, NULL, decls, block);
}
示例#3
0
文件: parser.c 项目: Saruta/a2c
struct algo *parse_function()
{
  eat(FUNCTION);
  eat(IDENTIFIER);
  char *ident = strdup(tok->val);
  eat(COLON); eat(IDENTIFIER);
  char *returntype = strdup(tok->val);
  eat(EOL);
  struct declarations *decls = parse_decls();
  eat(BEGIN); eat(EOL);
  instructionlist_t block = parse_block();
  eat(END); eat(ALGORITHM); eat(FUNCTION); eat(IDENTIFIER);
  if (lookahead[0]->type == EOL) eat(EOL);
  return algo(ident, returntype, decls, block);
}