10-25-2006
Multiple scanners on same input file using lex/flex
Hi all,
I'm working with flex (version 2.5.4a) on GNU/linux. I used it to develop 4 scanner C files for matching different patterns within an input file. But the problem now on my hand is that I need to conditionally combine these. That is in main (placed in a separate C file other than the 4 scanner files) I'll have check the options provided by the user and accordingly call the scanner functions from the scanner C files.
For ex. if main is in file app.c and options are:
-f - for scanner function of 1st scanner file
-s - for scanner function of 2nd scanner file
-t - for scanner function of 3rd scanner file
-r - for scanner function of 4th scanner file
so something like './app -f -s -r filename' would mean that the scanners from 1st, 2nd and 4th file are called while 3rd's is not called.
The problem with such a situation is that when lex is invoked it generates C file with scanner function yylex() (and supporting functions for it). Now this function has same signature in all 4 scanners and hence the inclusion of all 4 files causes name conflict ("error: yylex() redifned here". Even -P option does not help as it just #define s the original function).
Now I hope everybody must be understanding my difficulty. Is there any way out (without changing to C++)?
While I'll like a functional decomposition as stated above but even if someone can come up with a solution where I need to combine all lex files to one and still be able to control what pattern are to be matched according to the switch provided by user in 'main()' will be a great help.
Thanks in advance!
10 More Discussions You Might Find Interesting
1. Shell Programming and Scripting
Hello ,
I am trying to print the footer of evry file in the given directory with xargs command like follows
ls -1 | xargs -I {} gzcat {} | tail -1
now problem with this is only last file foooter is getting printed as " | tail -1 " is getting executed for the last file.
I know this can... (4 Replies)
Discussion started by: nilesrex
4 Replies
2. Shell Programming and Scripting
I've got:
isql -U $USERID -S $SERVER -D $DATABASE -i inputfile.sql -o outputfile.txt
in inputfile I have:
go
sql#1
go
sql#2
go
sql#3
go
I also tried without "go" and with";" instead which did not work
SQL statements will work if I paste them directly into the script and use EOF
... (0 Replies)
Discussion started by: Cailet
0 Replies
3. Shell Programming and Scripting
Hi there,
I am trying to figure out a way to combine multiple sources with different data on a single file, and I am trying to find the best way to do it.
I have multiple files, let's say A, B, C and D. A has a field in common with B, B has a field in common with C, and C has a field in... (2 Replies)
Discussion started by: ppucci
2 Replies
4. Shell Programming and Scripting
I have a file with lines something like.
......
123_start
......
.......
123_end
....
.....
456_start
......
.....
456_end
....
.....
789_start
....
....
789_end (6 Replies)
Discussion started by: abinash
6 Replies
5. Shell Programming and Scripting
Hi,
I'm working on a script which has to copy multiple files from one server to another server. The list of files that are to be copied is present in a file say input.txt.
vi input.txt
abc.c
welcome.c
new.c
welcome1.c
for ftp'ing a single file say 'new.c' the following code... (2 Replies)
Discussion started by: i.srini89
2 Replies
6. Homework & Coursework Questions
Florida State University, Tallahassee, FL USA, Dr. Whalley, COP4342
1. The problem statement, all variables and given/known data:
Create a lex specification file that reads a C source program that ignores keywords and collects all identifiers (regular variable names) and also displays the line... (3 Replies)
Discussion started by: D2K
3 Replies
7. Shell Programming and Scripting
Once a time, I did see a way to multiply a file input in bash, but have forgotten how it was done.
Eks.
awk 'FNR==NR {a++;next} ($2 in a) {print $2}' file file
Here you need file two times.
I seen it some like this
awk 'FNR==NR {a++;next} ($2 in a) {print $2}' 2&file (16 Replies)
Discussion started by: Jotne
16 Replies
8. Shell Programming and Scripting
Hello,
I have a file called COMPLIST as follows that contains 4 digit numbers.0002
0003
0010
0013
0015
0016
0022
0023
0024
0025
0027
0030
0031
0032
0033
0035
0038
0041 (3 Replies)
Discussion started by: sph90457
3 Replies
9. Shell Programming and Scripting
Hello,
I have been working on script in which search and replace the multiple pattern.
1. update_params.sh read the multiple pattern from input file ParamMapping.txt(old_entry|New_entry) and passing this values one by one to change_text.sh
2. change_text.sh read... (0 Replies)
Discussion started by: ketanraut
0 Replies
10. Shell Programming and Scripting
GM,
I have an issue at work, which requires a simple solution. But, after multiple attempts, I have not been able to hit on the code needed.
I am assuming that sed, awk or even perl could do what I need.
I have an application that adds extra blank page feeds, for multiple reports, when... (7 Replies)
Discussion started by: jxfish2
7 Replies
LEARN ABOUT DEBIAN
pct-scanner-script
PCT-SCANNER-SCRIPT(1) General Commands Manual PCT-SCANNER-SCRIPT(1)
NAME
pct-scanner-script - easy scan and create merged DjVu and PDF documents for archiving
SYNOPSIS
pct-scanner-script [--help]
DESCRIPTION
pct-scanner-script is a bash script and configuration system to easily scan documents and create a digital archiving. It can create DjVu
PDF and JPEG outputs, in merged and individual files. It also has a configuration system where different configurations can be defined,
making it easy to switch between configurations.
Please use pct-scanner-script --help to find all program options, the complete help, and all examples.
Features:
- auto archiving in merged and individual DjVu, PDF, and JPEG files
- auto and manual resume when scanning somehow fails
- cascading configuration system, for easy customizing
- easy command-line-style bash program, with useful options
- archiving made possible with both adf and flatbed scanners
- built for productivity and daily use
- uses bash, scanadf and other mainstream processing tools
- multilanguage commandline output
OPTIONS
-h, --help, -?
Show summary of options, help, and examples.
DEBUGGING
This program is a helper script to easy scan and automated digital document archiving for normal and adf scanners. You can debug this
script by running it as bash -x pct-scanner-script [options]. The script is just a nice wrapper for the scanadf, DjVu and PDF tools.
SEE ALSO
scanadf(1),
AUTHOR
pct-scanner-script and this manual page are written by:
Jelle de Jong <jelledejong@powercraft.nl>.
March 31, 2009 PCT-SCANNER-SCRIPT(1)