<commit_before>lut-lang
========

[![Circle CI](https://circleci.com/gh/hexa2/lut-lang/tree/master.svg?style=svg)](https://circleci.com/gh/hexa2/lut-lang/tree/master)

Lutin Language Interpreter

Installation
------------

```
git clone <EMAIL>:hexa2/lut-lang.git
cd lut-lang
make
make test # test your code
python cpplint.py src/* # check styleguide
```

Usage
-----

```
./bin/lut <LUT-FILE> \
  -o # Optimize/Transform code \
  -p # Print transformed code \
  -a # Static Analysis \
  -e # Execute/interpret code
```

Terminal symbols

 + `var` : variable
 + `const` : constant
 + `id` : variable name
 + `val` : positive value


Non terminal symbols
------

 + `P` : Program
 + `D` : DeclarationBlock
 + `L1` : EnumDecl
 + `L2` : EnumAssign
 + `I` : InstructionBlock
 + `E` : FirstLevelExpression
 + `T` : SecondLevelExpression
 + `F` : ThirdLevelExpression
 + `opA` : AdditiveOperation
 + `opM` : MultiplicativeOperation

Grammar Rules
-------

1: `P -> D I`
2: `D -> D var id L1 ;`
3: `D -> D const id = val L2 ;`
4: `D -> eps`
5: `L1 -> L1 , id`
6: `L1 -> eps`
7: `L2 -> L2 , id`
8: `L2 -> eps`
9: `I -> I = E ;`
10: `I -> I li id ;`
11: `I id := E ;`
12: `I -> eps`
13: `E -> E opA T`
14: `E -> T`
15: `T -> T opM F`
16: `T -> F`
17: `F -> id`
18: `F -> val`
19: `F -> ( E )`
20: `opA -> +`
21: `opA -> -`
22: `opM -> *`
23: `opM -> /`

That's all, folks and guys !
<commit_msg>changed Grammar Rules appearance in README.md<commit_after>lut-lang
========

[![Circle CI](https://circleci.com/gh/hexa2/lut-lang/tree/master.svg?style=svg)](https://circleci.com/gh/hexa2/lut-lang/tree/master)

Lutin Language Interpreter

Installation
------------

```
git clone <EMAIL>:hexa2/lut-lang.git
cd lut-lang
make
make test # test your code
python cpplint.py src/* # check styleguide
```

Usage
-----

```
./bin/lut <LUT-FILE> \
  -o # Optimize/Transform code \
  -p # Print transformed code \
  -a # Static Analysis \
  -e # Execute/interpret code
```

Terminal symbols
-------

 + `var` : variable
 + `const` : constant
 + `id` : variable name
 + `val` : positive value


Non terminal symbols
------

 + `P` : Program
 + `D` : DeclarationBlock
 + `L1` : EnumDecl
 + `L2` : EnumAssign
 + `I` : InstructionBlock
 + `E` : FirstLevelExpression
 + `T` : SecondLevelExpression
 + `F` : ThirdLevelExpression
 + `opA` : AdditiveOperation
 + `opM` : MultiplicativeOperation

Grammar Rules
-------

 + 1: `P -> D I`
 + 2: `D -> D var id L1 ;`
 + 3: `D -> D const id = val L2 ;`
 + 4: `D -> eps`
 + 5: `L1 -> L1 , id`
 + 6: `L1 -> eps`
 + 7: `L2 -> L2 , id`
 + 8: `L2 -> eps`
 + 9: `I -> I = E ;`
 + 10: `I -> I li id ;`
 + 11: `I id := E ;`
 + 12: `I -> eps`
 + 13: `E -> E opA T`
 + 14: `E -> T`
 + 15: `T -> T opM F`
 + 16: `T -> F`
 + 17: `F -> id`
 + 18: `F -> val`
 + 19: `F -> ( E )`
 + 20: `opA -> +`
 + 21: `opA -> -`
 + 22: `opM -> *`
 + 23: `opM -> /`

That's all, folks and guys !

{'fraction_non_alphanumeric': 0.22388059701492538, 'fraction_numerical': 0.03471017007983339, 'mean_word_length': 2.5103532277710108, 'pattern_counts': {'":': 0, '<': 7, '<?xml version=': 0, '>': 51, 'https://': 4, 'lorem ipsum': 0, 'www.': 0, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 0, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'dir': 'git-commits-cleaned', 'id': '4565989', 'n_tokens_mistral': 1270, 'n_tokens_neox': 1187, 'n_words': 333}