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.
- Host: GitHub
- URL: https://github.com/luisespino/erz
- Owner: luisespino
- License: mit
- Created: 2025-03-26T22:19:00.000Z (about 1 year ago)
- Default Branch: main
- Last Pushed: 2025-04-05T09:47:25.000Z (about 1 year ago)
- Last Synced: 2025-05-28T07:58:06.616Z (about 1 year ago)
- Topics: entity-relationship-models, software-specifications, z-notation
- Language: PHP
- Homepage: https://luisespino.github.io/erz/
- Size: 717 KB
- Stars: 0
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
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!