I am an intern working on the Eclipse Advanced Visualization Project (EAVP),
and we are using Xtext to parse files and import them into our data structures.
Using Xtext, I was able to fairly easily accomplish this task with STL files
STL (file format) - Wikipedia, the free encyclopedia. This is because STL has
keywords followed by data, which is a simple Xtext grammar to write.
| |
| | | | | | | |
| STL (file format) - Wikipedia, the free encyclopediaSTL (STereoLithography)
is a file format native to the stereolithography CAD software created by 3D
Systems.[1][2][3] STL has several after-the-fact backronyms such... |
| |
| View on en.wikipedia.org | Preview by Yahoo |
| |
| |
However, we are now focusing on IGES (Initial Graphics Exchange Specification)
geometry files, which are not as easy to parse. The IGES files are ASCII
records with 80 characters per line. These lines need to be split by either
length (in characters) or by a delimiter. It seems difficult to get Xtext to
read in files line by line or even character by character. More information on
IGES can be found here: IGES - Wikipedia, the free encyclopedia
| |
| | | | | | | |
| IGES - Wikipedia, the free encyclopediaThe Initial Graphics Exchange
Specification (IGES) (pronounced eye-jess) is a vendor-neutral file format that
allows the digital exchange of information among compu... |
| |
| View on en.wikipedia.org | Preview by Yahoo |
| |
| |
The main difficulty is deciding the type of line the parser is currently
reading. There are sections to the file, and the current section is specified
by the 73rd character per line. I cannot find a way to easily read this
character before starting to parse the rest of the line. For example, here is
the file on the Wikipedia page:
S 1
1H,,1H;,4HSLOT,37H$1$DUA2:[IGESLIB.BDRAFT.B2I]SLOT.IGS;, G 1
17HBravo3 BravoDRAFT,31HBravo3->IGES V3.002 (02-Oct-87),32,38,6,38,15, G 2
4HSLOT,1.,1,4HINCH,8,0.08,13H871006.192927,1.E-06,6., G 3
31HD. A. Harrod, Tel. 313/995-6333,24HAPPLICON - Ann Arbor, MI,4,0; G 4
116 1 0 1 0 0 0 0 1D 1
116 1 5 1 0 0D 2
116 2 0 1 0 0 0 0 1D 3
116 1 5 1 0 0D 4
100 3 0 1 0 0 0 0 1D 5
100 1 2 1 0 0D 6
100 4 0 1 0 0 0 0 1D 7
100 1 2 1 0 0D 8
110 5 0 1 0 0 0 0 1D 9
110 1 3 1 0 0D 10
110 6 0 1 0 0 0 0 1D 11
110 1 3 1 0 0D 12
116,0.,0.,0.,0,0,0; 1P 1
116,5.,0.,0.,0,0,0; 3P 2
100,0.,0.,0.,0.,1.,0.,-1.,0,0; 5P 3
100,0.,5.,0.,5.,-1.,5.,1.,0,0; 7P 4
110,0.,-1.,0.,5.,-1.,0.,0,0; 9P 5
110,0.,1.,0.,5.,1.,0.,0,0; 11P 6
S 1G 4D 12P 6 T 1
Here I need to skip the S and G rows, and after that read each number from the
D rows into fields- every 8 characters holds a record (after removing
white-space). The P rows need to be read in as comma separated values, where
the last bit (#P #) is ignored. This is only a primitive parse of this
file, but still good enough to read in the critical data. Do you think Xtext
will be helpful or even usable to parse this kind of file? What kind of grammar
could we write to handle these problems? Any help would be appreciated!
Thank you so much,
Kasper Gammeltoft
Oak Ridge National Laboratory,
Computer Science and Mathematics Division,
Computer Science Research Group
(865)-696-6625
[email protected]
_______________________________________________
xtext-dev mailing list
[email protected]
To change your delivery options, retrieve your password, or unsubscribe from
this list, visit
https://dev.eclipse.org/mailman/listinfo/xtext-dev