⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 mix_parser.h

📁 汇编语言编程源代码
💻 H
字号:
/* -*-c-*- ---------------- mix_parser.h : * Declarations for mix_parser_t, which compiles a source file into * a mix code file. * ------------------------------------------------------------------ * Copyright (C) 2000 Free Software Foundation, Inc. *   * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 2 of the License, or * (at your option) any later version. *   * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the * GNU General Public License for more details. *   * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. *   */#ifndef MIX_PARSER_H#define MIX_PARSER_H#include <glib.h>#include "mix_vm.h"/* The parser type */typedef struct mix_parser_t mix_parser_t;/* Create/destroy a mix_parser */extern mix_parser_t *mix_parser_new(const gchar *in_file);extern voidmix_parser_delete(mix_parser_t *parser);/* Access source file name */extern const gchar *mix_parser_src_file_base_name(const mix_parser_t *parser);extern const gchar *mix_parser_src_file_extension(const mix_parser_t *parser);/* Compile a mix source file *//* compilation errors */typedef enum {   MIX_PERR_OK,		/* no error */  MIX_PERR_NOCOMP,	/* file not yet compiled */  MIX_PERR_INTERNAL,	/* internal error */  MIX_PERR_NOIN,	/* unable to open input file */  MIX_PERR_NOOUT,	/* unable to open output file */  MIX_PERR_UNEX_EOF,	/* unexpected end of file */  MIX_PERR_INV_LOC,	/* invalid loc field */  MIX_PERR_DUP_SYMBOL,	/* duplicated symbol */  MIX_PERR_LONG_SYMBOL,	/* symbol name too long */  MIX_PERR_NOOP,	/* missing op field */  MIX_PERR_UNEX_LOC,	/* unexpected location symbol */  MIX_PERR_INV_ADDRESS, /* invalid address field */  MIX_PERR_INV_IDX,	/* invalid index field */  MIX_PERR_INV_FSPEC,	/* invalid fspec */  MIX_PERR_INV_OP,	/* invalid operation */  MIX_PERR_INV_EXPR,	/* invalid expression */  MIX_PERR_UNDEF_SYM,	/* undefined symbol */  MIX_PERR_MIS_PAREN,	/* mismatched parenthesis */  MIX_PERR_UNEX_FSPEC,	/* unexpected f-spec */  MIX_PERR_MIS_SYM,	/* missing symbol name */  MIX_PERR_SYM_INS,	/* symbol has the same name as instruction */  MIX_PERR_NOWRITE,	/* failed code write */  MIX_PERR_SHORT_ALF,	/* short ALF operand */  MIX_PERR_LONG_ALF	/* too long ALF operand */} mix_parser_err_t;extern const gchar *mix_parser_err_string(mix_parser_err_t error);extern mix_parser_err_tmix_parser_compile(mix_parser_t *parser);extern guint mix_parser_warning_count(const mix_parser_t *parser);extern guint mix_parser_err_count(const mix_parser_t *parser);/* Write the compilation result to a code file with the given name.   code_file is completed, if required, with the requisite extension;   if code_file == NULL [source_file_name].[extension] is used.   If debug == TRUE, debug information is written.*/extern mix_parser_err_tmix_parser_write_code(mix_parser_t *parser, const gchar *code_file,		      gboolean debug);/* Write a "canonical" listing of a compiled source, i.e. a source   file with all symbols substituted by their actual values after   compilation.*/extern mix_parser_err_tmix_parser_write_listing(mix_parser_t *parser, const gchar *list_file);/* load a virtual machine's memory with the contents of a compiled file */extern mix_parser_err_tmix_parser_load_vm(const mix_parser_t *parser, mix_vm_t *vm);#endif /* MIX_PARSER_H */

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -