This software can be cited directly as follows:
@software{jurgen_j_vinju_2023_8280198,
author = {Jurgen J. Vinju},
title = {Dr Ambiguity},
month = aug,
year = 2023,
publisher = {Zenodo},
version = {v0.1.2},
doi = {10.5281/zenodo.8280198},
url = {https://doi.org/10.5281/zenodo.8280198}
}
The diagnostics features are based on the following publication:
@inproceedings{sle3,
title = {Parse Forest Diagnostics with Dr. Ambiguity},
author = {Bas Basten and Jurgen Vinju},
booktitle = {International Conference on Software Language Engineering (SLE)},
year = 2011,
publisher = {Springer},
series = {LNCS},
}
Which automated the manual instructions found here:
@techreport{sdf2medkit,
author = "Jurgen J. Vinju",
title = "SDF Disambiguation Medkit for Programming Languages",
institution = "Centrum Wiskunde \& Informatica",
year = "2007"
}
The ambiguity detection algorithm -via random tree generation- is a port in Rascal of the method published by our colleagues in this paper:
@inproceedings{10.1007/978-3-319-02654-1_9,
author = {Vasudevan, Naveneetha and Tratt, Laurence},
booktitle = {Software Language Engineering},
editor = {Erwig, Martin and Paige, Richard F. and Van Wyk, Eric},
pages = {157--176},
publisher = {Springer International Publishing},
title = {Detecting Ambiguity in Programming Language Grammars},
year = {2013}
}