User
User

Reputation: 229

Combining Flexc++ and Bisonc++

I am using Flexc++ and Bisonc++ to implement a small language.

Flexc++ provides a simple constructor

Scanner(std::string const &infile, std::string const &outfile) 

to set the input and output files.

However, when integrating with Bisconc++ I cannot find a simple way to use this constructor for the scanner object inside the generated parser.

The auto-generated Parser.h contains the scanner object:

...
Scanner d_scanner;
....

By default, the parser class has no constructor with input/output arguments and the parse-function has no parameters. Default behavior is parsing from standard input and outputting to standard output.

What I seek is basically the same as this question (see 2.) but the answers do not really cover this criteria.

At the moment I parse from standard input with

int main(....) {
  Parser parser;
  parser.parse()
}

Instead I will like to specify a file-path and provide it to the parse-function or even to the constructor.

int main(....) {
  std::string filePath;
  Parser parser; // or (filePath) here 
  parser.parse(filePath)
}

Of course I could just add the functionality after parser generation, but that is not really the best option as everything should be auto-generated.

I fail to see how to do this with the provided .ih header files.

And yes, I want to use Flexc++ and Bisonc++.

Upvotes: 1

Views: 222

Answers (0)

Related Questions