Ports for SerenityOS
Collections What's new Versions Info Sign in

Berkeley Yacc 20230521

Berkeley Yacc reads the grammar specification in the input file and generates an LALR(1) parser for it. The parsers consist of LALR(1) parsing tables and a driver routine written in the C programming language.

cd Ports/byacc
./package.sh

Screenshot

This description was automatically generated by ChatGPT. Feel free to add a accurate human-made description!

Berkeley Yacc (BYacc) is a parser generator that is an enhanced version of the original Yacc (Yet Another Compiler Compiler) tool developed at Bell Labs. BYacc was developed at the University of California, Berkeley in the late 1970s and early 1980s, and is now a widely-used tool for generating parsers for programming languages and other applications.

BYacc is used to generate code for parsing input data according to a set of rules or grammar. It takes a specification of the grammar as input and generates C code for a parser that can recognize input that conforms to the grammar. The generated parser can be used to parse and analyze input data, such as program source code or data in a particular format.

One of the major features of BYacc is its ability to generate LALR(1) parsers, which are a type of bottom-up parser that can recognize a wide range of context-free grammars. The tool also supports other advanced features such as semantic actions, which allow the parser to execute code when it recognizes a particular grammar rule, and error recovery, which enables the parser to continue parsing even when it encounters errors in the input.

BYacc is available as open-source software under the BSD license and has been ported to many different platforms, making it widely used and popular among developers and researchers working on language processing and related fields.

Website: https://invisible-island.net/byacc/byacc.html

Port: https://github.com/SerenityOS/serenity/tree/master/Ports/byacc

Sign in to vote

✍️ Edit this page

Similar ports

Port icon has the following license: Attribution 4.0 International (CC BY 4.0)