An open API service indexing awesome lists of open source software.

https://github.com/luisespino/erz

Generator of Formal Software Specifications that Converts an Entity-Relationship Diagram to Z Notation.
https://github.com/luisespino/erz

entity-relationship-models software-specifications z-notation

Last synced: 10 months ago
JSON representation

Generator of Formal Software Specifications that Converts an Entity-Relationship Diagram to Z Notation.

Awesome Lists containing this project

README

          

# ERZ

## Syntax BNF

```bnf
::= 'erDiagram' * EOF

::=
|
|

::= ':'

::=

::= '--'

::=

::= '|o' | '||' | '}o' | '}|'

::= 'o|' | '||' | 'o{' | '|{'

::= 'DIRECTION' ('TB' | 'BT' | 'LR' | 'RL')
| 'direction' ('tb' | 'bt' | 'lt' | 'rl')

::= '{' * '}'
|

::= ?

::=

::=

::=
|

::= 'PK'
| 'pk'

::= 'FK'
| 'fk'

::= ( | | '-' | '_')*

::=
| '_'

::= 'a' | 'b' | 'c' | 'd' | 'e' | 'f' | 'g' | 'h' | 'i' | 'j'
| 'k' | 'l' | 'm' | 'n' | 'o' | 'p' | 'q' | 'r' | 's' | 't'
| 'u' | 'v' | 'w' | 'x' | 'y' | 'z'
| 'A' | 'B' | 'C' | 'D' | 'E' | 'F' | 'G' | 'H' | 'I' | 'J'
| 'K' | 'L' | 'M' | 'N' | 'O' | 'P' | 'Q' | 'R' | 'S' | 'T'
| 'U' | 'V' | 'W' | 'X' | 'Y' | 'Z'

::=
|

::= '0' | '1' | '2' | '3' | '4' | '5' | '6' | '7' | '8' | '9'
```

## Install Fuzz Type-Checker

Install dependencies(for Arch Linux, modify pacman for other distributions):
```
sudo pacman -S texlive-core base-devel
```

Clone the Fuzz Repo:
```
git clone https://github.com/Spivoxity/fuzz.git
cd fuzz
```

Configure the installation:
```
./configure
```

Build the type-checker:
```
make
```

Install the type-cheker:
```
sudo make install
```

Save the LaTeX format in a file (z.tex) and Check:
```
fuzz z.tex
```

If no errors occur, everything is all right!