01-22-2009
parsing fixed length field with yacc/bison
How to specify the token length in a yacc file?
sample input format
<field1,data type ans,fixed length 6> followed by <field2,data type ans,fixed length 3>
Example i/p and o/p
Sample Input: "ab* d2 9o"
O/p : "Field1 [ab* d2] Field2 [ 9o] "
yacc/bison grammar:
record : AlphaNumericSpecialOfLength6 AlphaNAumericSpecialOfLength3
/** not like
record : FIELD1 FIELD2 { ....};
FIELD1 : ANS ANS ANS ANS ANS ANS;
FIELD2 : ANS ANS ANS { ...} ; ***/
{ printf("Field1 [%s] Field2 [%s] \n", $1 , $2); }
How to define grammar for this in yacc/bison?
10 More Discussions You Might Find Interesting
1. UNIX for Dummies Questions & Answers
What's wrong with this part of my script?
I just want to put each column from a fixed length file into a variable so I can validate each field later in the script.
exec< myfile.dat
while read afile; do
a=`echo $(echo $afile |cut -c1-10)`
echo "$a"
b=`echo $(echo $afile |cut -c11-20)`... (12 Replies)
Discussion started by: giannicello
12 Replies
2. Shell Programming and Scripting
Is there a command that sets a variable length?
I have a input of a variable length field but my output for that field needs to be set to 32 char.
Is there such a command?
I am on a sun box running ksh
Thanks (2 Replies)
Discussion started by: r1500
2 Replies
3. 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
4. UNIX for Dummies Questions & Answers
I want to find out the record length of a fixed length file? I forgot the command. Any body know? (9 Replies)
Discussion started by: tranq01
9 Replies
5. UNIX for Dummies Questions & Answers
Hi, all.
I need to convert a file tab delimited/variable length file in AIX to a fixed lenght file delimited by spaces. This is the input file:
10200002<tab>US$ COM<tab>16/12/2008<tab>2,3775<tab>2,3783
19300978<tab>EURO<tab>16/12/2008<tab>3,28523<tab>3,28657
And this is the expected... (2 Replies)
Discussion started by: Everton_Silveir
2 Replies
6. Shell Programming and Scripting
Very, very new to unix scripting and have a unique situation. I have a file of records that contain 3 records types:
(H)eader Records
(D)etail Records
(T)railer Records
The Detail records are 82 bytes in length which is perfect. The Header and Trailer records sometimes are 82 bytes in... (3 Replies)
Discussion started by: jclanc8
3 Replies
7. Shell Programming and Scripting
Hi,
Can anyone help with a effective solution ?
I need to change a variable length text field (between 1 - 18 characters) to a fixed length text of 18 characters with the unused portion, at the end, filled with spaces.
The text field is actually field 10 of a .csv file however I could cut... (7 Replies)
Discussion started by: dc18
7 Replies
8. Shell Programming and Scripting
HPUX and posix shell
Hi all.
I have a record with fixed length fields....I would like to reorder the fields and preserver the fixed lengths....
cat test
4 960025460 Dept of Music
8 960025248 Dept of Music 12-08
cat... (3 Replies)
Discussion started by: lyoncc
3 Replies
9. Shell Programming and Scripting
Hello Everyone,
I am stuck with one issue while working on abstract flat file which i have to use as input and load data to table.
Input Data-
------ ------------------------ ---- -----------------
WFI001 Xxxxxx Control Work Item A Number of Records
------ ------------------------... (5 Replies)
Discussion started by: sonali.s.more
5 Replies
10. Shell Programming and Scripting
Hi Team,
I have an issue to split the file which is having special chracter(German Char) using awk command.
I have a different length records in a file. I am separating the files based on the length using awk command.
The command is working fine if the record is not having any... (7 Replies)
Discussion started by: Anthuvan
7 Replies
YACC(1) General Commands Manual YACC(1)
NAME
yacc - yet another compiler-compiler
SYNOPSIS
yacc [ -vd ] grammar
DESCRIPTION
Yacc converts a context-free grammar into a set of tables for a simple automaton which executes an LR(1) parsing algorithm. The grammar
may be ambiguous; specified precedence rules are used to break ambiguities.
The output file, y.tab.c, must be compiled by the C compiler to produce a program yyparse. This program must be loaded with the lexical
analyzer program, yylex, as well as main and yyerror, an error handling routine. These routines must be supplied by the user; Lex(1) is
useful for creating lexical analyzers usable by yacc.
If the -v flag is given, the file y.output is prepared, which contains a description of the parsing tables and a report on conflicts gener-
ated by ambiguities in the grammar.
If the -d flag is used, the file y.tab.h is generated with the define statements that associate the yacc-assigned `token codes' with the
user-declared `token names'. This allows source files other than y.tab.c to access the token codes.
FILES
y.output
y.tab.c
y.tab.h defines for token names
yacc.tmp, yacc.acts temporary files
/usr/lib/yaccpar parser prototype for C programs
/lib/liby.a library with default `main' and `yyerror'
SEE ALSO
lex(1)
LR Parsing by A. V. Aho and S. C. Johnson, Computing Surveys, June, 1974.
YACC - Yet Another Compiler Compiler by S. C. Johnson.
DIAGNOSTICS
The number of reduce-reduce and shift-reduce conflicts is reported on the standard output; a more detailed report is found in the y.output
file. Similarly, if some rules are not reachable from the start symbol, this is also reported.
BUGS
Because file names are fixed, at most one yacc process can be active in a given directory at a time.
YACC(1)