The ReDSL Language

A ReDSL source file is an ordinary text file (UTF-8 encoded) with the file extension ".redsl". It can live anywhere in the file system, you can edit it with any plain text editor, and you can version it with any revision control system (like git, Subversion, CVS, Mercurial, etc.).

The main object of a ReDSL source file is a requirement (or design) statement:

§77 {
    This is a statement that did, does, or will hold true for the software system XY. 
}

Please note that the identifyer given ("77" in this case) is for referencing in ReDSL source files only. It will not be displayed to the user of the generated documentation. There, consecutive numbers will be used to identify the requirement statements.

You can type an arbitrary number of requirements into a ReDSL source file:

§55 { Statement one. }
§60 { Statement two. }

Requirement statements can be grouped together in a package. Consecutive requirement statements  belong to the preceeding package declaration, i.e. are contained within this package. If a package is declared multiple times (in one and/or in several source files), all requirement statements together constitute the content of the according package.

package "User Requirements"
§u1 { This is the first user requirement. }
§u2 { This is the second user requirement. }
§u3 { This is the third user requirement. }
package "System Design Requirements"
§sd1 { The system shall be implemented in Java. }
§sd2 { The system shall be implementes with a client/server architecture. }

For rendering you can declare a document. Multiple documents can be declared. A document declaration consists of package references and declarations of other docuement contents:

document "Project Requirements for ZZZ" {
    package "User Requirement Specification"
    package "System Requirement Specification"
    package "General Requirements"
    version-info
    glossary local
}
document "Detailed Requirements Specification for ZZZ" {
    package "Software Requirement Specification - ReDSL Parser" {
        file "ReDSL/example2.redsl"
        file "ReDSL/example1.redsl"
    }
    package "Module Requirement Specification"
    version-info
    glossary global
}

Please note that the order of the requirements in the rendered documents firstly depends on the orfer of the file references (if any) and secondly on the order of declaration in the source file(s).

For the complete language syntax, please refer to the secification (ANTLR 4 syntax). Please note that the spec is not yet stable!