11-07-2008
How to match n number of newline character(\n) in lex and yacc
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.\"
which matches " followed by anything and a newline etc.
The problem with the above regular expression is that it can take at most 2 new line(\n) characters because the . fails to match (\n) and breaks at that point. so i had to explicitly specify (\s*) to match the newline in between quotes(" "). if my file contains something as:
text a=10 "
b=25
c=30
d= 40
e=11
";
the above regular expression(\".\s*.*\s.\") fails to match it.
Can anyone write the regular expression which can take any any number of new lines inside the quotes (" ") and which will help to solve my problem
Please Help
10 More Discussions You Might Find Interesting
1. Linux
Hi,
I need to read one chinese char using lex. I tried using "." ( period ) for pattern matching but in vain.
Could anyone suggest me how do i proceeed.
Sample pgm: to read a chinese char in single quotes.
%{
#include <locale.h>
%}
%%
\'.\' printf("SUCCESS\n");
. ... (0 Replies)
Discussion started by: suman_jakkula
0 Replies
2. UNIX for Dummies Questions & Answers
hi,
I want to print the below lines
"Message from bac logistics
The Confirmation File has not been received."
When i give like this in the code
"Message from bac logistics\n The Confirmation File has not been received."
It is giving only
Message from bac logistics\n The... (9 Replies)
Discussion started by: trichyselva
9 Replies
3. UNIX for Dummies Questions & Answers
hi,
I have a for loop where in I write some file name to another file.
I want to write all the filenames to another without any newlines. how can i avoid getting new lines with echo?
Thanks,
Srilaxmi (2 Replies)
Discussion started by: srilaxmi
2 Replies
4. Programming
Hi ,
We have developed a grammer for our domain language using lex n yacc.
I want to know is there any pre defined lex-yacc function which gets call before executing any rule (or rules).
Oue requirement is, before processing any rule ,we want to perform some specific actions ?
is there... (0 Replies)
Discussion started by: supritjain
0 Replies
5. UNIX for Dummies Questions & Answers
Hi everyone!
This is my very first post, sorry if I'm not posting in the right category.
I'm trying to match a newline "/n" using lex/yacc.
For example,
print(9,'\n',8)
should print
9
8
now do I write a regular expression to match exactly " '\n' "
Thanks! (1 Reply)
Discussion started by: code21
1 Replies
6. UNIX for Dummies Questions & Answers
variable="unix\nlinux"
echo $variable
expected output:
unix
linux
:wall: can i do that ??
thanks in advance!! (3 Replies)
Discussion started by: sathish92
3 Replies
7. UNIX for Dummies Questions & Answers
Hi,
i have a file where the end-of-file might be at the end of of a valid text line or on a new line
case a)
p q r
s t u <eof>
case b)
p q r
s t u
<eof>
case c)
p q r
s t u
<no data, only carriage return>
<eof>
I have a requirement where <eof> line should not be read if it's... (3 Replies)
Discussion started by: ysrini
3 Replies
8. UNIX for Dummies Questions & Answers
Hi everyone
I have a file where CP occurs both within each line and at the very end:
dwer 17 knsdask= * CP hwla 17 h'wopie un CP
I would like to separate the line on the first CP to get:
dwer 17 knsdask= * CP
hwla 17 h'wopie un CP
What I have so far is:
awk '{for (x=1; x<NF; x++)
... (5 Replies)
Discussion started by: meet77
5 Replies
9. Shell Programming and Scripting
Hi all..
I have a text file which looks like below:
abcd
efgh
ijkl
(blank space)
I need to remove only the last (blank space) from the file. When I try wc -l the file name,the number of lines coming is 3 only, however blank space is there in the file.
I have tried options like... (14 Replies)
Discussion started by: Sathya83aa
14 Replies
10. Shell Programming and Scripting
I have a file which comes every day and the file data look's as below.
Vi abc.txt
a|b|c|d\n
a|g|h|j\n
Some times we receive the file with only a new line character in the file like
vi abc.txt
\n (8 Replies)
Discussion started by: rak Kundra
8 Replies
regex(3) Library Functions Manual regex(3)
Name
re_comp, re_exec - regular expression handler
Syntax
char *re_comp(s)
char *s;
re_exec(s)
char *s;
Description
The subroutine compiles a string into an internal form suitable for pattern matching. The subroutine checks the argument string against
the last string passed to
The subroutine returns 0 if the string s was compiled successfully; otherwise a string containing an error message is returned. If is
passed 0 or a null string, it returns without changing the currently compiled regular expression.
The subroutine returns 1 if the string s matches the last compiled regular expression, 0 if the string s failed to match the last compiled
regular expression, and -1 if the compiled regular expression was invalid (indicating an internal error).
The strings passed to both and may have trailing or embedded newline characters; they are terminated by nulls. The regular expressions
recognized are described in the manual entry for given the above difference.
Diagnostics
The subroutine returns -1 for an internal error.
The subroutine returns one of the following strings if an error occurs:
No previous regular expression
Regular expression too long
unmatched (
missing ]
too many () pairs
unmatched )
See Also
ed(1), ex(1), egrep(1), fgrep(1), grep(1)
regex(3)