YACASL2
Data Structures | Typedefs | Enumerations | Functions | Variables
assemble.h File Reference
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <stdbool.h>
#include <ctype.h>
#include <assert.h>
#include <errno.h>
#include "cerr.h"
#include "cmem.h"
#include "hash.h"
#include "struct.h"
#include "word.h"
Include dependency graph for assemble.h:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Data Structures

struct  ASMODE
 アセンブルモードを表すデータ型 More...
 
struct  ASPTR
 アセンブル時の現在およびリテラルのアドレスとプログラム入口名を表すデータ型 More...
 
struct  LABELARRAY
 ラベル配列を表すデータ型 More...
 
struct  _LABELTAB
 ラベル表を表すデータ型 More...
 
struct  OPD
 オペランドを表すデータ型 More...
 
struct  CMDLINE
 命令行を表すデータ型 More...
 

Typedefs

typedef struct _LABELTAB LABELTAB
 ラベル表を表すデータ型 More...
 

Enumerations

enum  { LABELSIZE = 8, OPDSIZE = 40 }
 CASL IIの仕様 More...
 
enum  { LINESIZE = 1024, TOKENSIZE = 256 }
 YACASL2の制限 More...
 
enum  { LABELTABSIZE = 251 }
 
enum  PASS { FIRST = 0, SECOND = 1 }
 アセンブラが、1回目か2回目かを表す数値 More...
 

Functions

void addcerrlist_label ()
 ラベルのエラーをエラーリストに追加する More...
 
WORD getlabel (const char *prog, const char *label)
 プログラム名とラベルに対応するアドレスをラベル表から検索する More...
 
bool addlabel (const char *prog, const char *label, WORD adr)
 プログラム名、ラベル、アドレスをラベル表に追加する More...
 
void printlabel ()
 ラベル表を表示する More...
 
void freelabel ()
 ラベル表を解放する More...
 
void addcerrlist_tok ()
 トークン取得のエラーを追加する More...
 
CMDLINElinetok (const char *line)
 行から、ラベル・コマンド・オペランドを取得する More...
 
void addcerrlist_assemble ()
 アセンブルエラーをエラーリストに追加する More...
 
bool assemblefile (const char *file, PASS pass)
 指定された名前のファイルをアセンブル
More...
 
void outassemble (const char *file)
 ファイルにアセンブル結果を書き込む More...
 

Variables

ASMODE asmode
 アセンブルモード: src, label, onlylabel, asdetail, onlyassemble More...
 
ASPTRasptr
 アセンブル時の、現在およびリテラルのアドレスとプログラム入口名: ptr, lptr, prog More...
 

Typedef Documentation

◆ LABELTAB

typedef struct _LABELTAB LABELTAB

ラベル表を表すデータ型

Enumeration Type Documentation

◆ anonymous enum

anonymous enum

CASL IIの仕様

Enumerator
LABELSIZE 

ラベルの最大文字数

OPDSIZE 

オペラントの最大数。CASL IIシミュレータの制限

Definition at line 20 of file assemble.h.

◆ anonymous enum

anonymous enum

YACASL2の制限

Enumerator
LINESIZE 

行の最大文字数

TOKENSIZE 

トークンの最大文字数

Definition at line 28 of file assemble.h.

◆ anonymous enum

anonymous enum

ラベル表のサイズ

Enumerator
LABELTABSIZE 

ラベル表のサイズ

Definition at line 83 of file assemble.h.

◆ PASS

enum PASS

アセンブラが、1回目か2回目かを表す数値

Enumerator
FIRST 

アセンブラ1回目

SECOND 

アセンブラ2回目

Definition at line 90 of file assemble.h.

Function Documentation

◆ addcerrlist_assemble()

void addcerrlist_assemble ( )

アセンブルエラーをエラーリストに追加する

Returns
なし

Definition at line 753 of file assemble.c.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ addcerrlist_label()

void addcerrlist_label ( )

ラベルのエラーをエラーリストに追加する

Returns
なし

Definition at line 84 of file label.c.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ addcerrlist_tok()

void addcerrlist_tok ( )

トークン取得のエラーを追加する

Returns
なし

Definition at line 96 of file token.c.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ addlabel()

bool addlabel ( const char *  prog,
const char *  label,
WORD  adr 
)

プログラム名、ラベル、アドレスをラベル表に追加する

Returns
追加に成功した時はtrue、失敗した時はfalse
Parameters
*progプログラム名
*labelラベル
adrアドレス

Definition at line 106 of file label.c.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ assemblefile()

bool assemblefile ( const char *  file,
PASS  pass 
)

指定された名前のファイルをアセンブル

1回目ではラベルを登録し、2回目ではラベルからアドレスを読み込む

Returns
アセンブル完了時はtrue、エラー発生時はfalseを返す
Parameters
*fileファイル名
passアセンブラが何回目かを表す数

指定された名前のファイルをアセンブル
アセンブル完了時はtrue、エラー発生時はfalseを返す

Definition at line 724 of file assemble.c.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ freelabel()

void freelabel ( )

ラベル表を解放する

Returns
なし

Definition at line 158 of file label.c.

Here is the caller graph for this function:

◆ getlabel()

WORD getlabel ( const char *  prog,
const char *  label 
)

プログラム名とラベルに対応するアドレスをラベル表から検索する

Returns
プログラム名とラベルに対応するアドレス
Parameters
*progプログラム名
*labelラベル

Definition at line 89 of file label.c.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ linetok()

CMDLINE* linetok ( const char *  line)

行から、ラベル・コマンド・オペランドを取得する

Returns
ラベル・コマンド・オペランド
Parameters
*line

Definition at line 102 of file token.c.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ outassemble()

void outassemble ( const char *  file)

ファイルにアセンブル結果を書き込む

Returns
なし
Parameters
*fileファイル名

Definition at line 761 of file assemble.c.

Here is the caller graph for this function:

◆ printlabel()

void printlabel ( )

ラベル表を表示する

Returns
なし

Definition at line 135 of file label.c.

Here is the call graph for this function:
Here is the caller graph for this function:

Variable Documentation

◆ asmode

ASMODE asmode

アセンブルモード: src, label, onlylabel, asdetail, onlyassemble

Definition at line 312 of file assemble.c.

◆ asptr

ASPTR* asptr

アセンブル時の、現在およびリテラルのアドレスとプログラム入口名: ptr, lptr, prog

Definition at line 310 of file assemble.c.