lex(1) General Commands Manual lex(1)Name
lex - generate lexical analyzer
Syntax
lex [-tvfn] file...
Description
The command generates programs to be used in simple lexical analysis of text. The input files (standard input default) contain regular
expressions to be searched for, and actions written in C to be executed when expressions are found.
A C source program, 'lex.yy.c', is generated. It is compiled using the following command line:
cc lex.yy.c -ll
This program copies unrecognized portions of the input to the output, and executes the associated C action for each regular expression that
is recognized.
Options-f Runs a faster compilation (does not pack resulting tables). This is limited to small programs.
-n Prints no summary information (default option).
-t Writes to standard output instead of to file
-v Prints one-line summary of generated statistics.
Examples
In the following example, the command
lex lexcommands
draws instructions from the file lexcommands, and places the output in lex.yy.c. The command
%%
[A-Z] putchar(yytext[0]+'a'-'A');
[ ]+$
[ ]+ putchar(' ');
is an example of a program that would be put into a command file. This program converts upper case to lower, removes blanks at the end of
lines, and replaces multiple blanks by single blanks.
See Alsosed(1), yacc(1)
"LEX - Lexical Analyzer Generator", Supplementary Documents, Volume 2: Programmer
lex(1)
Check Out this Related Man Page
LEX(1) General Commands Manual LEX(1)NAME
lex - generator of lexical analysis programs
SYNOPSIS
lex [ -tvfn ] [ file ] ...
DESCRIPTION
Lex generates programs to be used in simple lexical analyis of text. The input files (standard input default) contain regular expressions
to be searched for, and actions written in C to be executed when expressions are found.
A C source program, 'lex.yy.c' is generated, to be compiled thus:
cc lex.yy.c -ll
This program, when run, copies unrecognized portions of the input to the output, and executes the associated C action for each regular
expression that is recognized.
The options have the following meanings.
-t Place the result on the standard output instead of in file "lex.yy.c".
-v Print a one-line summary of statistics of the generated analyzer.
-n Opposite of -v; -n is default.
-f "Faster" compilation: don't bother to pack the resulting tables; limited to small programs.
EXAMPLE
lex lexcommands
would draw lex instructions from the file lexcommands, and place the output in lex.yy.c
%%
[A-Z] putchar(yytext[0]+'a'-'A');
[ ]+$ ;
[ ]+ putchar(' ');
is an example of a lex program that would be put into a lex command file. This program converts upper case to lower, removes blanks at the
end of lines, and replaces multiple blanks by single blanks.
SEE ALSO yacc(1), sed(1)
M. E. Lesk and E. Schmidt, LEX - Lexical Analyzer Generator
7th Edition April 14, 1986 LEX(1)
I receive windows files via the internet on my solaris server. Since unix doesn't handle blanks well I change the blanks to ? which works just fine. I take these files and ftp them to windows so our analysts can work with them. Recently I received a file with the following structure:
... (3 Replies)
hello i'm trying to figure out how to number a blank line. For instance this :
sed '/./=' file | sed '/./N; s/\n/ /'
gives me
1 aaaa
2 bbbbbb
4 cccccc
5 ffkkkfff
6 ffsdfdfs
I would like something like this:
1 aaaaa
2
3 bbbbbb
4
5 cccccc
And so... (6 Replies)
Hi all
I am using lex for my application scanning and I need to skip some lines for which I don't know the exact pattern.
So, could anybody tell me the regular expression to display lines NOT beginning with the specified pattern.
I know how to display lines beginning with the... (1 Reply)
Can someone enligten me on what below program does?
I understand getchar and putchar.. but what is this program suppose to do?
I try to put printf on it, but it shows nothing..
can someone explain to me what this program is suppose to do?
It is reading something and assigning to c?
so, if... (8 Replies)
Hi everyone,
I would like to know how to compile and run lex programs on solaris 10.
the conventional way is
$ lex <name.l>
$ cc lex.yy.c -ll
$ ./a.out
but while trying to execute the 2nd command :i get a reference saying that the command is old or that main is not supported...
Hence... (1 Reply)
Hi ,
I need to develop a parser which should match something like
1. text a=5 " a=20";
2. text a=..."
a=20";
3 text a=..."
a=20
b=34
c=12
";
I have used this regular expression in my Lex file to generate the tokens:
\".\s*.*\s.\" (8 Replies)
Hi guys, not that used to using sed beyond the simple substitution. I am trying to check for a program (program1) and if it exists replace the standard output "program1" with a "program1(part1 part2) output if said program exists.
SW="program1 program2"
PROGRAM_TEST='echo "$SW" | grep... (3 Replies)
Hi
While installing Glimpse on Unix, I am getting the following error.
Can someone please help to resolve the same ?
flex -F -8 htuml2txt.lex
make: flex: Command not found
make: *** Error 127
make: Leaving directory `/home/user30/glimpse-4.18.6/dynfilters'
make: *** Error 2
Regards... (1 Reply)
Hi, I want to be able to write a simple program that takes in input from the command line. I;m am at the level of getchar and putchar. Any examples would be a great help thanks.
I intend/prefer also to use the pipe command | eg: input | file1
---------- Post updated at 04:08 PM ----------... (4 Replies)
Hello,
I try to print out with sed or awk the 21.18 between "S3 Temperature" and "GrdC" in a text file.
The blanks are all real blanks no tabs.
Only the two first chars from temperture are required. So the "21" i need as output.
S3 Temperatur 21.18 GrdC No Alarm
... (3 Replies)
Alright, so I'm writing a file for the lexical analyzer (lex). It will be used to check C code (collecting the identifiers and storing those names along with the line numbers the identifier was found on). I'm not used to 'C' so I'm having some difficulty.
I am using a function (insertId()) to... (4 Replies)
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)
I have a file that has some lines starts with *
I want to get these lines, then get the word between "diac" and "lex".
ex.
file:
;;WORD AlAx
*0.942490 diac:Al>ax lex:>ax_1 bw:Al/DET+>ax/NOUN+ gloss:brother pos:noun prc3:0 prc2:0 prc1:0 prc0:Al_det per:na asp:na vox:na mod:na gen:m num:s... (4 Replies)
Well as the title describes, its a pretty straight forward problem. I have a series of psql tables where there are lots of blanks. However there is at least one column, called name, that will never be blank. I want to write a select statement to get all of the contents of the table and then turn... (3 Replies)
I have a test file a.txt
001 123 456 789
002 This is just a
001 test data
003 file.
I want to clear columns 5 and 6 if the first 3 characters are 001 using awk.
I tried following but does not work. Any suggestions?
awk 'BEGIN{OFS=FS=""} {if (substr($0,1,3)=="123") $5=" "; $6="... (20 Replies)