

It is highly unlikely that you have ever used (or even heard of) Miniset, largely because I made it up last month in order to practice with flex and bison before working on isetl. This article will present a small simple language called Miniset and then present the steps I followed to develop a parser for the language.

This recent work has required that I brush up on my skills with flex and bison (in the Metrowerks' CodeWarrior environment) and doing a small project with a toy language similar to isetl seemed like a good first step. My own personal experience with flex and bison began in a course in compiler design at the University of Wisconsin-Madison and I am currently working on reimplementing an interpreter for the language isetl in ANSI C++. For example, if you are transferring data over the Internet in the form of strings, you can use flex and bison to create a parser to decode the information. There are also situations where you might want to be able to analyze a sequence of tokens even if the final output is not compiled code. First, you may find that writing (or even understanding the code behind) a simple compiler may make the syntax errors coming from other compilers more understandable. That's okay, there are still a number of reasons to learn a little about flex and bison. But wait, you protest, I don't write compilers. Bison (whose name comes from YACC-Yet Another Compiler Compiler) will group the words into sentences, the sentences into paragraphs and the paragraphs into sections. It could be used to write code breaking this article into a sequence of words and punctuation. In particular, flex (short for fast lexical analyzer) will take a sequence of characters and break them apart into tokens (words). What Are Flex and Bison (And, Why Do I Need Them)įlex and bison are code-generating tools designed to aid in compiler development.

Educational Institution and Student DiscountsĬolumn Tag: Programming Using Flex and Bisonīy Aaron Montgomery Scanners, Parsers and Abstract Syntax Trees, oh my!.
