/
Sapphire/bin/
Sapphire/db/
Sapphire/db/OLC_rooms/
Sapphire/db/abi/
Sapphire/db/em_src/
Sapphire/db/helps/
Sapphire/db/helps/emman/ifunc/
Sapphire/db/npcs/Tatt/
Sapphire/db/objects/Tatt/
Sapphire/db/q_data/
Sapphire/db/rooms/Tatt/
Sapphire/doc/
Sapphire/doc/em/
Sapphire/etc/
Sapphire/src/abic/
Sapphire/src/areacon/
Sapphire/src/client/
Sapphire/src/embc/
Sapphire/src/emi/
Sapphire/src/emi/test/
Sapphire/src/include/
Sapphire/src/sapphire/em/
Sapphire/src/tcon/
The Emerald Basic Compiler
--------------------------

Program name  : embc
Usage         : embc [input file]


    Embc reads Emerald Basic files (.emb) and compiles them into standard
.emo files, which can then be loaded my a Emerald interpreter as code modules.

    There are two symbols that embc reconizes.  Each symbol converts the
given data to binary.  The symbols are as follows.

    i <instruction>
    l <literal-type> <literal>

    Embc also allows comments.  A comment starts with a `;' and terminates
when the end of the line is reached.


- Instructions

    Refer to the file `instr.txt' for a list of valid instructions.


- Literal types

    int1                      integer; one byte
    int2                      integer; two bytes
    int4                      integer; four bytes
    float4                    floating point; four bytes
    float8                    floating point; eight bytes
    string                    string; size varys (one byte per character)


- EMB Example Code


;
; File:     hello.emb
; Author:   Christopher D. Granz
;
; Description:
;     Defines one function, hello().  When called, hello() prints the
; message "Hello World!" to the standard output terminal.  Calls one
; builtin function, sysout().
;

l int1 1                     ; File format version.

l int2 2                     ; Number of entries in the symbol table.
;
; Symbol Table
;
l int2 5
l string "hello"
l int2 6
l string "sysout"

l int4 1                     ; Global code size.
;
; Global code
;
i END

l int2 1                     ; Number of functions.

;
; Function: hello()
;
l int4 0                     ; Function flags.
l int1 0                     ; Number of arguments.
l int2 0                     ; Symbol table name reference.
l int4 23                    ; Code size.
i PUSH_STRING                ; Function code.
l int2 14
l string "\nHello World!\n"
l int1 77                    ; Byte code used to tell the linker the
                             ;   following symbol table reference is to
                             ;   be tranlated into an actaul function.
l int2 1
i CALL_BUILTIN_FUNC
i POP
i END                        ; Function code end.

;
; End of hello.emb
;



--