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.
This commit is contained in:
parent
543190f2bc
commit
bc5f13bb4e
57 changed files with 11464 additions and 3 deletions
91
iface/nips/nips_vm/assembler_format.txt
Normal file
91
iface/nips/nips_vm/assembler_format.txt
Normal file
|
|
@ -0,0 +1,91 @@
|
|||
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
|
||||
|
||||
Loading…
Add table
Add a link
Reference in a new issue