# RIS Parser ## Add new law text - Tests: Create config file in `./data/configs/` and run the tests (`cargo t`). This will automatically create tests both for `overview` and `par` (by adding new files in `data/expected/`). ## Integration test - Nice test would be to re-create html ris file and compare it (problem with custom fixes, though) ## Goals - [x] I want to have the text of the law. - [x] I want to see the structure (proper headers) of the law. - [ ] I want to be able to make comments (e.g. Erschöpfung) on certain parts - [ ] I want to see since when this paragraph is in use. - [.] Lawtext should be updateable ## Mindset - I don't want to restrict myself with a [parser combinators](docs.rs/nom) but code it myself using *recursive descent* parser. - Be strict in what I process. Fail if anything unexpected happens. The user should handle this case. It's fine if one decides to ignore the new/unexpected field, but it should be done deliberately. ## Nomenclature - Law ("Gesetz"): e.g. UHG, TEG, ABGB - Section ("Paragraph") - Subsection ("Absatz") - Item ("Ziffer") - Heading-{1,2,3,...} ## Folder-Structure of this repo - ./data - cache -> cache for tests - expected - overview -> expected xml links of law_ids - par -> expected `LawBuilder` calls for a given law - configs -> configs for various law texts. If you want to support a new law text, add respective config here. ## License Licensed under the EUPL, Version 1.2 or – as soon they will be approved by the European Commission - subsequent versions of the EUPL (the "Licence"). You may not use this work except in compliance with the Licence. **License**: [European Union Public License v1.2](https://joinup.ec.europa.eu/software/page/eupl)