Sponsored Content
Top Forums Programming Multiple scanners on same input file using lex/flex Post 302094237 by jim mcnamara on Thursday 26th of October 2006 07:25:03 AM
Old 10-26-2006
You have four lex-generated files - go intothose files and mark all of the functions in them static - this makes their scope local to the C file they live in. Next create a wrapper function that is NOT static.
in file1.c create scanner1() which calls the yylex function or whatever entrypoint you have defined. Create scanner2(), scanner3() and scanner4() in each of ther other files. In the main block, have for extern declarations for scanner1() scanner2() etc.

ld will hide the fact that each of those four modules has functions all named the same:
Code:
cc main.c file1.c file2.c file3.c file4.c -o scanmain

Assuming I understood your problem.... I didn't get your first problem very clearly either.
 

10 More Discussions You Might Find Interesting

1. Shell Programming and Scripting

Can Xargs execute multiple commands of evry input file

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

isql input file with multiple sql statements

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

building output file from multiple input files

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

Split a file into multiple files based on the input pattern

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

How to ftp multiple files by taking the file name from a input file.

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

Lex: analyzing a C file and printing out identifiers and line numbers they're found on

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

Multiple file input

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

Copying a file to multiple other files using a text file as input

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

Avoid overwriting backup file when multiple entries need to replace in one file input from another

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

Removing multiple lines from input file, if multiple lines match a pattern.

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
megaco_flex_scanner(3erl)				     Erlang Module Definition					 megaco_flex_scanner(3erl)

NAME
megaco_flex_scanner - Interface module to the flex scanner linked in driver. DESCRIPTION
This module contains the public interface to the flex scanner linked in driver. The flex scanner performs the scanning phase of text mes- sage decoding. The flex scanner is written using a tool called flex . In order to be able to compile the flex scanner driver, this tool has to be avail- able. By default the flex scanner reports line-number of an error. But it can be built without line-number reporting. Instead token number is used. This will speed up the scanning some 5-10%. Use --disable-megaco-flex-scanner-lineno when configuring the application. The scanner will, by default, be built as a reentrant scanner if the flex utility supports this (it depends on the version of flex). It is possible to explicitly disable this even when flex support this. Use --disable-megaco-reentrant-flex-scanner when configuring the applica- tion. DATA TYPES
megaco_ports() = term() megaco_version() = integer() >= 1 EXPORTS
start() -> {ok, PortOrPorts} | {error, Reason} Types PortOrPorts = megaco_ports() Reason = term() This function is used to start the flex scanner. It locates the library and loads the linked in driver. On a single core system or if it's a non-reentrant scanner, a single port is created. On a multi-core system with a reentrant scan- ner, several ports will be created (one for each scheduler). Note that the process that calls this function must be permanent. If it dies, the port(s) will exit and the driver unload. stop(PortOrPorts) -> stopped Types PortOrPorts = megaco_ports() This function is used to stop the flex scanner. It also unloads the driver. is_reentrant_enabled() -> Boolean Types Boolean = boolean() Is the flex scanner reentrant or not. is_scanner_port(Port, PortOrPorts) -> Boolean Types Port = port() PortOrPorts = megaco_ports() Boolean = boolean() Checks if a port is a flex scanner port or not (useful when if a port exits). scan(Binary, PortOrPorts) -> {ok, Tokens, Version, LatestLine} | {error, Reason, LatestLine} Types Binary = binary() PortOrPorts = megaco_ports() Tokens = list() Version = megaco_version() LatestLine = integer() Reason = term() Scans a megaco message and generates a token list to be passed on the parser. Ericsson AB megaco 3.15.1 megaco_flex_scanner(3erl)
All times are GMT -4. The time now is 06:01 AM.
Unix & Linux Forums Content Copyright 1993-2022. All Rights Reserved.
Privacy Policy