|
|
|
|
|
|
Somusar/SoProMach[tm]
User's Guide Francesco Aliverti-Piuri Copyright © 2003-2007 Somusar Updated on: January 31, 2005 |
|
|
|
|
|
|
|
|
|
Unix is a registered trademark in the United States and other countries, licensed exclusively through X/Open Company Limited.
Linux is a registered trademark of Linus Torvalds in the United States and other countries.
Sun, Sun Microsystems, the Sun logo, Solaris, Java, and all Java-based marks are trademarks or registered trademarks of Sun Microsystems, Inc. in the United States and other countries.
Symbian and all Symbian-based marks and logos are trademarks of Symbian Software Limited.
Apple and Mac OS are registered trademarks of Apple Computer, Inc. in the United States and other countries.
Intel is a registered trademark of Intel Corporation in the United States and other countries.
PowerPC and CICS are registered trademarks of International Business Machines Corporation in the United States and other countries.
Microsoft, Windows, Visual Basic are either trademarks or registered trademarks of Microsoft Corp. in the United States and/or other countries.
Oracle is a registered trademark, and PL/SQL is a trademark of Oracle Corporation.
SAP and ABAP/4 are registered trademarks of SAP AG in Germany and several other countries.
PostScript is a registered trademark of Adobe Systems Incorporated in the United States and/or other countries.
So.mus.ar, the Somusar logo, Somusar/Software Production Technique, Somusar/Software Production Machine, Somusar/Sisendel, Somusar/Tefigel, Somusar/SoProTech, Somusar/SoProMach, Somusar/Software Entity, Somusar/Software Mold, Somusar/Software Mold Kit, Somusar/Software Mold Building, Somusar/Code Generator Building, Somusar/Generator Building, and Somusar/File Generation Scheme are trademarks of so.mus.ar. s.a.s. in Italy, in the European Union, in the United States of America and other countries.
Other trademarks or service marks referenced herein are property of their respective owners.
| Contents | ||||||||||||||||||||||||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| ||||||||||||||||||||||||||||||||||||||||||||
| Tables | ||
|---|---|---|
| ||
This document describes how to install and operate
the Somusar/Software Production Machine[tm], independently of the underlying operating system
and of the edition of SoProMach.
All Somusar's products are
currently available for the
following platforms:
The reader should be familiar with the following basic concepts and
procedures:
SoProMach is delivered in tar/gzip (in short: tgz) format.
Instructions on how to expand and install the software
package are available in the
next chapter
.
The tgz file for each platform contains two executable files:
|
Note:
The two executable files for Windows® have the extension ".exe". |
The technical documentation for SoProMach, Sisendel and Tefigel is publically available on line
The licensing agreement for SoProMach users is also available on line.
The SoProMach tgz file can be unpacked by means of utilities such
as Winzip® or gunzip and gtar, available
for practically all platforms (see http://www.gzip.org).
The installation of SoProMach does not require administrator
(or root) privileges; however, a centralized installation may
require such privileges in order to share the SoProMach package
and the related environment variables.
The suggested unpack sequence is the following:
The following table describes the environment variables for SoProMach,
specifying the user level that they have been designed for.
| Variable | Description | User level |
|---|---|---|
| SOMUSAR | Package installation directory | System-wide SoProMach users |
| PATH | Executable search path | All system-wide SoProMach users |
| SISENDEL_MOLDS | Mold kit to be applied by SoProMach | Project group(s) |
| SISENDEL_TOOLKIT | Set of Tefigel scripts used by one or more mold kits | Project group(s) |
| SISENDEL_LIBRARY | Set of reusable entities shared among two or more project groups | Project group(s) |
| SISENDEL_PROJECT | Set of entities that constitute a SoProTech project | Project group |
Issuing the following command:
prompt> sisendel -version
should produce an output message similar to the following:
sisendel[tm]: version 070/community - 27Oct04 - www.somusar.com
Copyright (c) 2002-2004 so.mus.ar. s.a.s. - All rights reserved.
Issuing the following command:
prompt> tefigel -version
should produce an output message similar to the following:
tefigel[tm]: version 103/community - 27Oct04 - www.somusar.com
Copyright (c) 2002-2004 so.mus.ar. s.a.s. - All rights reserved.
In case of error message or different output message, or in case of
no output message at all, the following check should be performed:
Should the above check not solve the unexpected
behavior of SoProMach, please report the problem
to the Somusar support team at
http://www.somusar.com/services/support.
verify that the hostname of the computer where SoProMach has been installed exactly matches the hostname provided to Somusar when requesting SoProMach.
A set of proof-of-concept (POC) generators are freely available
at http://www.somusar.com, and allow SoProMach users
to familiarize with its software generation capabilities.
For training and consultancy please refer to
http://www.somusar.com/services.
The command-line interface of SoProMach
consists of two commands - the two
executable programs - with options and parameters as follows:
Compile one or more project entity files; the input files must reside in the SISENDEL_PROJECT directory, or in subdirectories thereof.
Compile one or more library entity files; the input files must reside in the SISENDEL_LIBRARY directory, or in subdirectories thereof.
Print out version and model information of the Sisendel executable file.
Read Tefigel instructions and text from the standard input, writing output onto the standard output, or onto the file, or files, specified as parameters to one or more output or append instructions.
Read Tefigel instructions and text from the given files, writing output onto the standard output, or onto the file, or files, specified as parameters to one or more output or append instructions. The special name "-" can be specified to process the standard input. File names with extension ".tfg" are assumed to refer to Tefigel script files. The extension ".tfg" may be omitted.
Print out version and model information of the Tefigel executable file.
SoProMach can be used to generate software according to two main
schemes:
Scheme 1:
entity-based software generation, fully described in
"Somusar/Software Production Technique[tm]: An Introduction
"; the language and
corresponding processor for this scheme is Sisendel, but Tefigel
also plays an important role as the language for the Software Molds;
Scheme 2:
generalized file-oriented software generation;
the language and corresponding processor for this scheme is Tefigel.
A thorough discussion about the applicability of Sisendel falls outside
the scope of this guide, and is given in
"Somusar/Software Production Technique[tm]: An Introduction
",
"Somusar/Sisendel[tm]: A Tutorial Introduction
", and
"Somusar/Software Production Technique[tm]: A Sample Project
":
for the purpose of this guide it is sufficient to say that
Sisendel can be applied in any software project - from small to large,
to very large -
involving some degree of similarity in the software files related to
the entities that constitute the software system under development.
In general, Sisendel can be applied whenever a software system
can be described as a set of interrelated entities (or objects)
distributed across two or more system layers, such as a database,
a usage interface, and a business logic layer. In addition, Sisendel
allows to automatically produce consistent and up-to-date
documentation about the software system.
As described in detail in
"Somusar/Tefigel[tm]: A Tutorial Introduction
", any text file
can be considered
a Tefigel "program": it is thus possible to apply the Tefigel
processor to any text file, independently of the Sisendel processor, to
generate software in practically any computer language source format.
Consequently, Tefigel can be applied as a generalized
generation tool in any software project involving
some degree of similarity at the source file level.
Tefigel can read natively XML and CSV files as input models.
The software generation engine Somusar/Software Production Machine[tm] is available in three models:
All Somusar's products are
currently available for the
following platforms:
Larger models of SoProMach can be built on request. Further information
on this topic are provided via our
contact page www.somusar.com/contact.
for small projects with up to 15 software entities.
for departmental projects with up to 50 software entities.
for enterprise projects with up to 500 software entities.
The following list describes all fatal errors of the Sisendel translator,
that is, all error conditions that cause Sisendel to stop processing
entities and terminate with an error condition. The official
definition of the syntax and semantics of Sisendel is documented in
"Somusar/Sisendel[tm]: Reference Guide
".
- ... are not allowed within section "..."
- arrays of functions are not allowed
- can't get current directory: ...
- checking NULL directory
- comment "..." is too long (longer than 4096 characters)
- complete collection of entity fields is too long
- could not convert string "..." into number
- creating dir. "..."
- creating NULL directory
- environment variable "..." not set
- empty definition for field "..."
- empty description
- entity "..." multiply defined (files "..." and "...")
- enumeration definition associated with field of type "..."
- enumeration symbol "..." used more than once
- enumeration value ... ('...') used more than once
- exec... failed
- extension "..." in mold "...", layer "...", is reserved
- failed to read range lower bound from "..."
- failed to read range upper bound from "..."
- field "..." not a member of collection "..."
- field "..." previously defined
- file "..." not part of library "..."
- file "..." not part of project "..."
- fixed-size arrays of links are not allowed
- fork failed
- function definition associated with field of type "..."
- identifier "..." is too long
- illegal adjusting section "..."
- illegal character '...' (0x...) in identifier "..."
- illegal step 0 under "..."
- imported fields must be of a basic type
- imported fields of type "..." are not allowed
- importing from a basic type is not allowed
- importing from within the same user type is not allowed
- items collection "..." is empty
- library entity dir. "..." and project dir. "..." are not separated
- links to basic types are not allowed
- lists of basic types are not allowed
- lower bound of range "..." not smaller than the upper bound
- missing/bad/too high ordinal number in mold "...", layer "..."
- missing cardinality for "string ..."
- missing collection identifier before member list
- missing definition for "enum ..."
- missing definition for "range ..."
- missing definition of range lower bound
- missing description of entity
- missing field reference before enumeration definition
- missing field reference before function definition
- missing field reference before range definition
- missing section "..."
- missing signature for "function ..."
- missing step ... under "..."
- missing subdirectory for mold ... in layer "..."
- multiple definition for range field "..."
- multiple definition of collection "..." within section "..."
- multiple definition of entity
- multiple enumeration definitions for field "..."
- multiple reference to field "..." within collection "..."
- multiple value definition for enumeration symbol "..."
- no field defined with id "..."
- no field defined with index ...
- opening directory (...) "..."
- opening entity directory "..."
- opening mold directory "..."
- ordinal number multiply used in mold "...", layer "..."
- processed file contains no entity definition
- ran out of space
- range definition associated with field of type "..."
- reconversion of lower bound fails, value ... is probably too small
- reconversion of upper bound fails, value ... is probably too big
- removing dir. "..."
- removing NULL directory
- section "..." multiply defined
- section "..." must appear before section "..."
- step ... under "..." defined more than once
- syntax error >>...<<.
- too many (max: 50) collections of items
- too many (max: 100) entity fields
- too many directories (max: 32) in input pathname "..."
- too many (max: 200) property adjustings
- too many members (max: 200) for enumeration "..."
- too many (max: ...) molds defined for layer "..."
- too many parameters (max: 100) for function "..."
- too many signatures (max: 8) for function "..."
- too many steps (max: 15) under "..."
- too many user-defined types (max: ...)
- undefined collection "..." for section "..."
- undefined type "..."
- unknown section id "..."
- user type "..." has no field called "..."
The specified Sisendel language construct cannot be used in the
specified section.
Sisendel does not allow to associate a cardinality with a field of type
function; alternatively, it is possible to define
an entity A containing only a function field, and define a
field of another entity B to be an array of A entities.
An attempt to retrieve the current working directory has failed.
It is highly recommended to verify the SoProMach installation as specified in "Verifying the Installation".
Internal error. It is highly recommended to verify the SoProMach installation as specified in "Verifying the Installation". Should this error condition appear again, please notify the Somusar support team as specified in http://www.somusar.com/services/support.
The specified comment - resulting from the concatenation
of the sequence of comment lines starting at the specified line -
exceeds the maximum allowed length, which is currently 4096.
The full list of field identifiers yields a string exceeding
the maximum allowed length. Should this error condition appear again, please notify the Somusar support team as specified in http://www.somusar.com/services/support.
The specified enumeration value definition does not contain a valid
numeric value.
An attempt to create the specified directory has failed.
It is highly recommended to verify the SoProMach installation as specified in "Verifying the Installation".
Internal error. It is highly recommended to verify the SoProMach installation as specified in "Verifying the Installation". Should this error condition appear again, please notify the Somusar support team as specified in http://www.somusar.com/services/support.
A value for the specified environment variable must be
defined prior to starting the Sisendel translator.
The definition for the specified field in section DEFS
is empty.
The specified field (or entity) description (or label) is an
empty string.
The same entity file prefix - i.e., the user-defined type id -
is used more than once within the project tree, therefore the
entity type is not unique.
A definition of an enumeration field in section DEFS refers
to a field whose type is not enum.
The definition of an enumeration field in section DEFS contains
two identical, non-unique symbolic values.
The definition of an enumeration field in section DEFS contains
two identical, non-unique numeric or character values.
An attempt to start the Tefigel processor has failed probably due to
a system overload. A check of the system status is highly recommended.
The generatable file extension used in the specified mold
is reserved by Sisendel and cannot be used for generatable files.
The specified range definition in section DEFS
contains a non-numeric value for the lower bound of the range
field.
The specified range definition in section DEFS
contains a non-numeric value for the upper bound of the range
field.
The specified adjusting parameter in section ADJUST
refers to a collection that does not contain the specified
field.
Multiple definition of the specified field, that is, the
same field identifier is used more than once.
The specified entity file does not belong to the current Sisendel library,
that is, it is not within the file-system
subtree starting at directory SISENDEL_LIBRARY.
The specified entity file does not belong to the current Sisendel project,
that is, it is not within the file-system
subtree starting at directory SISENDEL_PROJECT.
Sisendel does not allow to define fixed-size arrays of links.
A list of entities can be used instead.
An attempt to start the Tefigel processor has failed probably due to
a system overload. A check of the system status is highly recommended.
A definition of a function field in section DEFS refers
to a field whose type is not function.
The specified identifier exceeds the maximum
allowed length, which is currently 512 characters.
The section identifier in the specified adjusting parameter
does not correspond to any legal Sisendel section.
Sisendel identifiers may only contain lower case letters, digits,
and underscores _.
The specified mold directory contains a generation step directory
called "0": legal generation steps directories start from "1".
The type of the source field for the specified imported field
is not a basic type.
The type of the source field for the specified imported field
cannot be used for imported fields.
The entity part of the source field for the specified imported field
refers to a basic type instead of referring to an entity file.
The entity part of the source field for the specified imported field
refers to the same entity file defining the imported field.
No fields have been listed as members for the specified collection.
One of the directories specified as SISENDEL_PROJECT and SISENDEL_LIBRARY
is currently a subtree of the other: these directories
must be separated in order for Sisendel to distinguish library entities
from project entities. It is highly recommended to verify the SoProMach installation as specified in "Verifying the Installation".
The keyword link must be followed by a user type (i.e., an entity id).
The keyword list must be followed by a user type (i.e., an entity id).
The specified range definition in section DEFS is not in
the form "lower-bound/upper-bound".
The mold ordinal number in the directory name of the specified mold does not
correctly specify the mold position in the mold group sequence.
A cardinality definition for the specified string field must be
supplied in the field definition.
No identifier has been specified before the specified collection.
A definition for the specified enum field must be
supplied in section DEFS.
A definition for the specified range field must be
supplied in section DEFS.
The specified range definition in section DEFS is not in
the form "lower-bound/upper-bound".
No entity id and label have been specified in
section CORE.
The specified enum definition in section DEFS is not
associated with any field: a field identifier must be specified before the
specified line.
The specified function definition in section DEFS is not
associated with any field: a field identifier must be specified before the
specified line.
The specified range definition in section DEFS is not
associated with any field: a field identifier must be specified before the
specified line.
The specified entity file does not contain the specified mandatory section.
An interface definition (signature) for the
specified function field must be
supplied in section DEFS.
The specified mold directory does not contain any
generation step subdirectory for the specified step number
(i.e., the generation step slot is empty).
The mold group for the specified layer does not contain any
mold for the specified ordinal number (i.e., the mold group slot is empty).
Section DEFS contains more than one definition for the
specified range field.
The specified collection id is used more than once within the
specified section.
The specified entity file contains more than one entity definition
line in section CORE.
Section DEFS contains more than one definition for the
specified enum field.
The specified collection contains more than one reference to the
specified field.
Section DEFS contains more than one definition for the
specified enum symbolic value.
The specified line contains a reference to an invalid field identifier.
The specified line contains a reference to an invalid field.
An attempt to access the specified directory has failed.
It is highly recommended to verify the SoProMach installation as specified in "Verifying the Installation".
An attempt to access the specified directory has failed.
It is highly recommended to verify the SoProMach installation as specified in "Verifying the Installation".
An attempt to access the specified directory has failed.
It is highly recommended to verify the SoProMach installation as specified in "Verifying the Installation".
The ordinal number used in the name of the specified mold
has already been used in the same mold group, therefore the
mold group sequence is not properly defined.
Either the entity definition or the entity label is empty, or both
are missing from the specified entity file.
An attempt of the Sisendel processor to allocate memory
has failed probably due to
a system overload. A check of the system status is highly recommended.
The range definition in section DEFS refers to
the a field of the specified type.
The number specified for the lower bound in the range definition
in section DEFS cannot be converted without changes from/to
string format; the value is probably too small (underflow).
The number specified for the upper bound in the range definition
in section DEFS cannot be converted without changes from/to
string format; the value is probably too large (overflow).
An attempt to remove the specified directory has failed.
It is highly recommended to verify the SoProMach installation as specified in "Verifying the Installation".
Internal error. It is highly recommended to verify the SoProMach installation as specified in "Verifying the Installation". Should this error condition appear again, please notify the Somusar support team as specified in http://www.somusar.com/services/support.
The specified entity file contains more than once the specified section.
The correct section order for entity files is:
(CORE), DEFS, DB, LOGIC, UI, ADJUST.
More than one step subdirectory of the specified mold
corresponds to the specified step, possibly due to
different directory names that map to the same number
(such as "1" and "01").
The specified line does not match any of the syntax rules specified
by the Reference Guide of Sisendel:
possible errors could be missing labels, tabs before or between
collection members, upper case letters in identifiers, semicolon missing
from collection labels, and several others.
The syntax of Sisendel is defined in
"Somusar/Sisendel[tm]: Reference Guide
".
The specified entity file exceeds the maximum level of
collections (50).
The specified entity file exceeds the maximum number of
entity fields (100).
The specified file pathname exceeds the maximum number of
directory nesting (32).
The specified entity file exceeds the maximum number of
adjusting parameters (200).
The specified enum field exceeds the maximum number of
enumeration values (200).
The specified maximum number of molds has been exceeded.
An upgrade to a higher edition of SoProMach is recommended.
The specified function field exceeds the maximum number of
input parameters (100).
The specified function field exceeds the maximum number of
function signatures (8).
The specified maximum number of file generation steps
has been exceeded by the specified mold.
The specified maximum number of entity files
has been exceeded.
An upgrade to a higher edition of SoProMach is recommended.
The specified adjusting parameter of section ADJUST refers
to a collection which is not defined in the specified section.
The type of the specified field is neither a basic type, nor
a user-defined type (entity file).
The specified section id is invalid.
The correct section order for entity files is:
(CORE), DEFS, DB, LOGIC, UI, ADJUST.
The field part of the imported field type of the specified field
does not correspond to a field of the referenced entity.
The following list describes all warning messages issued by
the Sisendel translator,
that is, all error conditions that do not cause Sisendel to stop processing
entities.
- cannot open molds directory "..."
- enumeration description "..." used more than once
- ignoring unnecessary mold directory "..."
- mold processing failed
The mold group for the specified layer cannot be found or accessed
by the Sisendel translator; should this be intentionally so, due to
project conventions, it is possible to turn off this warning by
simply creating an empty directory for the specified layer under
SISENDEL_MOLDS.
The label for the specified enum value in section DEFS
has been already used within the same enumeration definition.
The mold kit directory SISENDEL_MOLDS contains a layer directory for the
specified entity file section, that by Sisendel definition cannot contain
any collection of fields, and is thus never searched by the Sisendel
translator for molds to be applied to the input entity files.
The mold processing performed by the Tefigel processor has failed,
probably due to a missing file or a mold error. The Tefigel error
message should provide hints on the reason of the error.
The following list describes all fatal errors of the Tefigel processor, that is, all error conditions that cause Tefigel to stop processing input commands and text, and terminate with an error condition. The official definition of the syntax and semantics of Tefigel is documented in "Somusar/Tefigel[tm]: Reference Guide ".
- Badly formed ...
- Badly formed embedded call "......"
- Could not jump to "...": label not found
- Could not ... to "...": seek error
- Divide by zero
- Empty string for system command
- "fseek" on "..." failed
- "ftell" on "..." failed
- Illegal first character for ... variable
- Instruction ... is missing corresponding ...
- [internal] filters "..." and "..." have the same priority
- [internal] excess slots in table "shortcut"
- [internal] insufficient slots in table "shortcut"
- [internal] need upper case code for macro "..."
- [internal] undefined opcode for ...
- jumpconds on <stdin> are not allowed
- jumps on <stdin> are not allowed
- label "..." already used on line ...
- labels on <stdin> are not allowed
- Line too long (...+ bytes)
- Missing assignment '=' on ... of "..."
- Missing condition for jumpcond
- Missing delimiter '=' for retvalue
- Missing ... at end of file processing
- Missing ')' on call
- Missing test operator (one of =#~><}{) in ... ...
- Non-logical destination "..." (=...) for ...
- Non-numeric destination "..." (=...) for ...
- Non-numeric value (...) for ...
In the case of exit instruction, this message notifies that
a non-numeric value has been incorrectly provided as an exit value
to be returned to the originating operating system process.
In the case of switch instruction, this message notifies that
a non-numeric value has been incorrectly provided for the specified
switch control variable.
- Opening file "..."
- Out of range value (...) for ... [...]
- Ran out of memory
- Substitution loop on "..."
- Too many filters
- Too many arguments (more than ...) to call
- Too many nested files
- Too many nested ...s
- Unbalanced ...
- Undefined destination "..." for ...
- Unknown ... identifier "..."
The specified instruction contains one or more syntax errors,
with respect to the syntax rules specified by document
"Somusar/Tefigel[tm]: Reference Guide
":
possible errors may be missing parentheses, missing terms,
unexpected characters, unexpected terms, and similar errors.
The specified function call after the current callkey
is syntactically incorrect.
The specified label could not be found in the specified file,
thus the jump instruction could not be performed as requested.
The specified jump instruction to the specified label could not
be performed due to a seek error. A possible reason for this
error could be a change in the contents of, or in the access
permissions to, the specified file.
The divisor of the DIV instruction at the specified line
evaluated to zero, thus the result of the division would be
undefined.
The evaluation of the command line string for the system
instruction yielded an empty string.
An attempt to perform a file seek operation on the specified file failed.
A possible reason for this
error could be a change in the contents of, or in the access
permissions to, the specified file.
An attempt to perform a "file tell" operation on the specified file failed.
A possible reason for this
error could be a change in the contents of, or in the access
permissions to, the specified file.
The identifier of the specified variable in the specified
command does not start with a letter or an underscore _
and is therefore illegal.
The specified instruction can only be used in conjunction
with the specified corresponding instruction.
Internal error. It is highly recommended to verify the SoProMach installation as specified in "Verifying the Installation". Should this error condition appear again, please notify the Somusar support team as specified in http://www.somusar.com/services/support.
Internal error. It is highly recommended to verify the SoProMach installation as specified in "Verifying the Installation". Should this error condition appear again, please notify the Somusar support team as specified in http://www.somusar.com/services/support.
Internal error. It is highly recommended to verify the SoProMach installation as specified in "Verifying the Installation". Should this error condition appear again, please notify the Somusar support team as specified in http://www.somusar.com/services/support.
Internal error. It is highly recommended to verify the SoProMach installation as specified in "Verifying the Installation". Should this error condition appear again, please notify the Somusar support team as specified in http://www.somusar.com/services/support.
Internal error. It is highly recommended to verify the SoProMach installation as specified in "Verifying the Installation". Should this error condition appear again, please notify the Somusar support team as specified in http://www.somusar.com/services/support.
The specified instruction cannot be performed when the Tefigel
processor reads text and commands from the standard input.
The specified instruction cannot be performed when the Tefigel
processor reads text and commands from the standard input.
The specified label is used more than once in the specified file,
thus the JUMP destination is ambiguous.
The specified instruction cannot be performed when the Tefigel
processor reads text and commands from the standard input.
The specified logical input line - possibly a concatenation of two
or more physical input lines - exceeds the specified internal maximum
input buffer size (currently 16 KB).
The specified instruction does not contain the assignment
operator =.
The specified instruction contains no logical
condition (i.e., no boolean comparison).
The specified instruction does not contain the assignment
operator =.
The specified expected end clause instruction could not be found
after all input lines of the specified file have been processed.
The parameter list to the specified call instruction
is not properly terminated.
The logical condition (that is, boolean comparison) does
not contain any comparison operator.
The target (or destination) variable of the
specified boolean operation has been previously set to a value which
is neither 0 nor 1, and thus not suitable for boolean computation.
The target (or destination) variable of the
specified arithmetic operation has been previously set to a non-numeric
value, and is thus not suitable for arithmetic computation.
In the case of arithmetic operations, this message notifies that
the second operand of the
specified arithmetic operation has been previously set to a non-numeric
value, and is thus not suitable for arithmetic computation.
The specified file could not be opened due to the specified
reason.
This message can appear as either a warning or an error message,
depending on the setting of the ON_MISSING_FILE switch control.
The new value supplied for the specified switch control variable
falls outside the valid range for that variable.
An attempt of the Tefigel processor to allocate memory
has failed probably due to
a system overload. A check of the system status is highly recommended.
An attempt to expand the contents of the specified variable
resulted in a substitution loop, that is, the current value
of the specified variable contains direct or indirect references
to the very same variable.
The specified maximum number (currently 16)
of concurrently active filters
has been exceeded.
The specified maximum number (currently 32) of parameters
to a function call has been exceeded.
The specified maximum level of file nesting via process or
call instructions has been exceeded.
An upgrade to a higher edition of SoProMach is recommended.
The specified maximum level of nesting with respect to the
specified instruction has been exceeded.
An upgrade to a higher edition of SoProMach is recommended.
The specified instruction attempts to restore a previously
saved value of the associated special character, but
no more saved values are available for that special character.
The specified target (or destination) variable of the
specified boolean or arithmetic operation is not set to a valid
value for the specified operation.
The specified identifier is not valid in the context of the
specified instruction as defined by document
"Somusar/Tefigel[tm]: Reference Guide
".
The following lists describe all warning messages issued by
the Tefigel translator,
that is, all error conditions that do not cause Tefigel to stop processing
input commands and text.
- Already in comment section
- Already in tefigel section
- codefile is obsolete, use tefigel instead
- Compiling reg. exp. of test "...": ...
- filter "..." is not associated with any reg. exp.
- filter "...", reg. exp. "...": ...
- filter "...", reg. exp. "...": save failed
- FMT_FLOAT requires two arguments
- FMT_INT requires two arguments
- FMT_STR requires two arguments
- globset of previously set variable "..."
- Ignoring extra arguments (more than 3) to REPLACE
- Illegal id. format "..."
- "library ..." would override "...", ignoring it
- mark '...' for <instruction-1> already in use as mark for <instruction-2>
- Missing identifier to create new list
- No argdelim set, can't perform shift
- Not in comment section
- Not in tefigel section
- Opening file "..."
- Restoring reg. exp. "...": ...
- Truncating very long internal exec "..."
- Unknown output line count, returning 0
- Unrecognized id. pattern "..."
A comment section opening delimiter was encountered while already in
a comment section.
A tefigel section opening delimiter (tefigel)
was encountered while already in
a tefigel section.
Instruction codefile has been superseded by instruction tefigel.
The internal compilation of the specified regular expression failed
due to the specified error, thus the boolean comparison could not
be performed.
The request to deactivate the specified filter could not
be fulfilled as the specified file is not an active filter.
The internal compilation of the specified regular expression failed
due to the specified error, thus the requested filter activation could not
be performed.
The internal saving of the specified regular expression failed,
thus the requested filter activation could not be performed.
Wrong number of arguments provided to function fmt_float.
Wrong number of arguments provided to function fmt_int.
Wrong number of arguments provided to function fmt_str.
An attempt to define the specified variable in the global
name space has failed because the same variable identifier
has already been used in one or more non-global name spaces.
The specified instruction is performed as if it were a
plain set instruction, thus the variable
is set to the new value specified by the instruction.
Too many arguments provided to function replace.
The identifier of the specified variable either contains
characters other than lower case letters, decimal digits, or
underscores "_", or it does not start with a letter
and is therefore illegal.
An attempt has been made to specify a library path when
another path is already active, but
only one library path at a time can be active,
to ensure that called or processed files
can be uniquely identified.
The new marker specified for <instruction-1> was already in use for <instruction-2>;
depending on the type of <instruction-1> and <instruction-2>,
subsequent input command lines starting with the new marker might be
interpreted by the Tefigel processor as either <instruction-1> or
<instruction-2> command lines.
No list identifier has been provided to function new_list.
A shift instruction was attempted, but no argdelim is set,
so it is not possible to shift the argument variables.
A comment section closing delimiter was encountered while not in
a comment section.
A tefigel section closing delimiter (endtefigel)
was encountered while not in
a tefigel section.
The specified file could not be opened due to the specified
reason.
This message can appear as either a warning or an error message,
depending on the setting of the ON_MISSING_FILE switch control.
An attempt to restore the specified regular expression failed,
so that the associated filter - although correctly active - cannot
be applied to the current output line.
The specified internal exec is too long and will be truncated.
The Tefigel processor cannot compute the current output
line number after a system instruction has been run
while the output file was still the standard output.
The specified identifier pattern string is not included in the list
provided in
"Somusar/Tefigel[tm]: Reference Guide
" and is therefore illegal.
The following list describes all warning messages issued by
the Tefigel translator when processing a tag file.
- Closing unbalanced tag end "..."
- Control character 0x... converted to blank
- Empty tag "..."
- Exceeded tag stack capacity
- Expected TAG_START '<', found '...'
- Missing TAG_END > at end of file
- Missing terminating ... quote sign at end of file
- No open tags, unbalanced tag end "..."
- Tag file processing failed. Reason: ...
- Tag key/value pair too long, skipping it
- Tag text too long (... characters), truncating it
- Truncating very long tag id "..."
- Truncating very long tag path
- Unbalanced tag end "..."
- Unbalanced TAG_END > ignored
- Unbalanced TAG_START < ignored
The specified tag node has not been closed before the end
of the tag node that includes it as a subnode.
The specified non-textual character has been automatically converted
to blank by Tefigel.
The specified tag is empty.
The maximum level of tag nesting has been exceeded.
An upgrade to a higher edition of SoProMach is recommended.
The specified unexpected character has been found where a "<" was
expected.
A tag appears to have not been properly closed before the end of file.
A string of text in quotes appears to have not been properly
closed before the end of file.
The specified tag node has been closed, but there were no open
tags at that stage.
Tag file processing was not possible for the specified reason.
A tag attribute/value pair string is too long, and will be ignored.
The specified tag text is too long and will be truncated.
The specified tag id is too long and will be truncated.
The current tag nesting path is too long and its conversion to
a string will be truncated.
The specified tag node has been closed, but it had not been
opened previously.
A ">" tag end encountered outside a tag node will be ignored.
A "<" tag start encountered inside a tag node will be ignored.
To request any type of information concerning the SoProTech[tm] or the SoProMach[tm], please fill in the appropriate form at http://www.somusar.com/contact specifying, beside your question or questions, the requested contact data.
To request support for any problem concerning
SoProMach, fill in form
http://www.somusar.com/contact/problem_report,
specifying, among other contact data, the following
information:
Submitted support requests are immediately sent to the Somusar support
service, and after validation of a support request
a confirmation email is sent to the address of the
Somusar licensee.
Additional information on the different aspects of the
Somusar/Software Production Technique[tm] can be found in the other volumes of
the Somusar/SoProTech[tm] Booklet Series, listed below.
Vol. I -
somusar/SoProTech: An Introduction
Vol. II -
somusar/SoProTech: A Sample Project
Vol. III -
somusar/Sisendel: A Tutorial Introduction
Vol. IV -
somusar/Tefigel: A Tutorial Introduction
Vol. V -
somusar/Sisendel: Reference Guide
Vol. VI -
somusar/Tefigel: Reference Guide
Vol. VIII -
somusar/tjpp: User's Guide
Vol. IX -
Code Generation Somusar Style
An introduction to the Somusar/Software Production Technique[tm], a new, fast, and efficient
technology to make high-quality multifacet software.
Description of a sample project, serving as a proof-of-concept
for the Somusar/Software Production Technique[tm], and the Somusar/Sisendel[tm] and Somusar/Tefigel[tm] languages.
A few code examples are provided and
demonstrate the practical applicability of the technique.
A tutorial introduction to Somusar/Sisendel[tm], describing all
features of the simple software entity design language. Several code examples
practically demonstrate the conciseness and flexibility
of the language.
An introduction to the syntax, semantics, and usage of Somusar/Tefigel[tm],
including a vast set of code examples, illustrating the powerful
features of the text file generation language.
Sisendel reference guide: official definition of syntax and semantics
of the Somusar/Sisendel[tm] language.
Tefigel reference guide: official definition of syntax and semantics
of the Somusar/Tefigel[tm] language.
The Somusar/tjpp[tm] User's Guide. How to install and operate
the Java[tm] preprocessor.
Proof-of-concept samples of what you can generate with Somusar/SoProMach[tm].