spot/iface/nips/nips_vm/assembler_format.txt
Guillaume Sadegh bc5f13bb4e NIPS VM added to the SPOT distribution.
2008-05-29  Guillaume SADEGH  <sadegh@lrde.epita.fr>

	* iface/nips/nips.cc, iface/nips/nips.hh, iface/nips/common.cc,
	iface/nips/common.hh, iface/nips/Makefile.am: TGBA implementation
	with the NIPS library.
	* iface/nips/emptiness_check.cc: Emptiness check on a Promela
	interface.
	* iface/nips/dottynips.cc: Dot printer on the NIPS interface.
	* iface/nips/compile.sh: Add. Wrapper around nips compiler to
	compile Promela to NIPS bytecode.
	* iface/nips/nips_vm,iface/nips/nips_vm/bytecode.h,
	iface/nips/nips_vm/ChangeLog, iface/nips/nips_vm/COPYING,
	iface/nips/nips_vm/hashtab.c, iface/nips/nips_vm/hashtab.h,
	iface/nips/nips_vm/INSTALL, iface/nips/nips_vm/instr.c,
	iface/nips/nips_vm/instr.h, iface/nips/nips_vm/instr_step.c,
	iface/nips/nips_vm/instr_step.h,
	iface/nips/nips_vm/instr_tools.c,
	iface/nips/nips_vm/instr_tools.h,
	iface/nips/nips_vm/instr_wrap.c,
	iface/nips/nips_vm/instr_wrap.h,
	iface/nips/nips_vm/interactive.c,
	iface/nips/nips_vm/interactive.h, iface/nips/nips_vm/main.c,
	iface/nips/nips_vm/Makefile, iface/nips/nips_vm/Makefile.am,
	iface/nips/nips_vm/nips_asm_help.pl,
	iface/nips/nips_vm/nips_asm_instr.pl,
	iface/nips/nips_vm/nips_asm.pl,
	iface/nips/nips_vm/nips_disasm.pl, iface/nips/nips_vm/nipsvm.c,
	iface/nips/nips_vm/nipsvm.h, iface/nips/nips_vm/README,
	iface/nips/nips_vm/rt_err.c, iface/nips/nips_vm/rt_err.h,
	iface/nips/nips_vm/search.c, iface/nips/nips_vm/search.h,
	iface/nips/nips_vm/split.c, iface/nips/nips_vm/split.h,
	iface/nips/nips_vm/state.c, iface/nips/nips_vm/state.h,
	iface/nips/nips_vm/state_inline.h,
	iface/nips/nips_vm/state_parts.c,
	iface/nips/nips_vm/state_parts.h, iface/nips/nips_vm/timeval.h,
	iface/nips/nips_vm/tools.h: NIPS VM added to the SPOT
	distribution.
	* configure.ac, iface/Makefile.am: Build system updated for the
	NIPS front-end.
2008-05-30 13:22:00 +02:00

91 lines
2.2 KiB
Text

NIPS - New Implementation of Promela Semantics
Copyright (C) 2005: Stefan Schuermans <stefan@schuermans.info>
Michael Weber <michaelw@i2.informatik.rwth-aachen.de>
Lehrstuhl fuer Informatik II, RWTH Aachen
Copyleft: GNU public license - http://www.gnu.org/copyleft/gpl.html
specification of the assembler file format
The entire format is line based. A line can contain a label, an instruction,
a label and an instruction or a directive. An additional comment separated by
";" is allowed at the end of every line.
begin of new module
-------------------
"!module" <name>
with <name> being enclosed in "
instruction lines
-----------------
3 formats are allowed
<label>:
<instruction> <parameter 1> ... <parameter n>
<label>: <instruction> <parameter 1> ... <parameter n>
with <label> = "[A-Za-z][A-Za-Z0-9_]*"
For a list of instructions with their parameters, see "nips_asm_instr.pl".
The parameters may be fixed text or be of one of the following types:
!const?: a constant value, i.e. a number
!reg: some register "r0" ... "r7"
!addr: a relative address, i.e. a label name
!address: an absolute address, i.e. a label name
flags (of bytecode addresses)
-----------------------------
"!flags" "progress"? "accept"?
"!flags_addr" <address> "progress"? "accept"?
with <address> of format "0x[0-9A-Fa-f]+"
marks the current / the specified address with the specified flags
string (for the string table)
-----------------------------
"!string" <index> <text>
<index> is used in the PRINT* commands.
<text> must be enclosed in ".
source location information
---------------------------
"!srcloc" <line> <column>
"!srcloc_addr" <address> <line> <column>
with <address> of format "0x[0-9A-Fa-f]+"
with <line> and <column> being numbers
specifies the location in the source code
corresponding to the current / the specified address
structure information
---------------------
"!strinf" "(begin|end)" <type> <name>?
"!strinf_addr" <address> "(begin|end)" <type> <name>?
with <address> of format "0x[0-9A-Fa-f]+"
with <type> and <name> of format "[A-Za-z]+"
specifies the begin / end of some structure of <type> in the source code
at the current / the specified address