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.
91 lines
2.2 KiB
Text
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
|
|
|