GEnealogical_Data_COMmunication is developed for Languages and Compilers Project Exam at University of Camerino.
Table of Contents
GEnealogical_Data_COMmunication is developed to parse a GEDCOM file or a stream represents a GEDCOM format.
Lexer generation and in particular Parser generation written with ANTLR4.
Semantics part is written in Java.
The purpose is to:
- execute the parsing of the file or stream
- compute the ancestors or descendants, in according to the request in the GEDCOM file or stream.
GEnealogical_Data_COMmunication is developed using:
Now you can compute your ancestors and your descendants thanks to GEnealogical_Data_COMmunication!
In this quickstart guide, you will:
- choose a GEDCOM file in gedTestFiles project directory or write a GEDCOM file.
Alternatively you can write your GEDCOM stream on the standard input during program execution - run the program with the GEDCOM file or stream in input
- see the ancestors or descendants about your request in the GEDCOM file or stream
To run GEnealogical_Data_COMmunication only you need is:
- ANTLR4: Install ANTLR4 from the official page Download ANTLR
- Java: Install Java from the offical page Download Java
-
Clone the repo
git clone https://github.com/Piermuz7/GEnealogical_Data_COMmunication.git
-
Add ANTLR4 4.10.1 to libraries project
Usage is very simple. You can:
- Run the program downloading the release:
or
java -jar Genealogical_Data_Communication.jar YOUR_FILEPATH
-
run on your favourite IDE but not forget adding ANTLR4 on your project libraries!
- Remember to press CTRL+D or CTRL+Z at the end of GEDCOM stream if you copy and paste that GEDCOM stream.
On this Potter Family tree, notice that there are 7 individuals (HPI01, HPI02, ...) and there are two families: HPF01 and HPF02. If we want to calculate, for example, ancestors and descendants of Harry Potter, results are the following:
- Ancestors: 0 ANCE @HPI03@
HPI01 HPI02 HPI03
- Descendants: 0 DESC @HPI03@
HPI03 HPI05 HPI06 HPI07
Notice that the order of a set of ancestors or descendants it is not important. Moreover, for GEDCOM definition, an individual is an ancestor and a descendant of itself. In Potter Family tree, the individual with CODE @HPI03@, so Harry Potter is an ancestor and a descendant of himself. Harry Potter's ancestors are James Potter (HPI02) and Lily Evans Potter (HPI01) and Harry Potter (HPI03) while his descendants are: James Sirius Potter (HPI05), Albus Severus Potter (HPI06), Lily Luna Potter (HPI07) and Harry Potter (HPI03).
- GEDCOM Grammar
- Walker pattern
- Ancestors and descendants computing
Contributions are what make the open source community such an amazing place to learn, inspire, and create. Any contributions you make are greatly appreciated.
If you have a suggestion that would make this better, please fork the repo and create a pull request. You can also simply open an issue with the tag "enhancement". Don't forget to give the project a star! Thanks again!
- Fork the Project
- Create your Feature Branch (
git checkout -b feature/AmazingFeature) - Commit your Changes (
git commit -m 'Add some AmazingFeature') - Push to the Branch (
git push origin feature/AmazingFeature) - Open a Pull Request
Piermichele Rosati - piermichele.rosati@gmail.com
Project Link: https://github.com/Piermuz7/GEnealogical_Data_COMmunication
