Bison - prosty parsing

Cel

Laboratorium ma na celu zapoznanie z generatorem parserów bison (bison manual). Zadanie polega na wykorzystaniu bisona do stworzenia uproszczonego walidatora RDF-a (RDF/XML Syntax Specification).

bison - wprowadzenie

Informacje na temat bisona.

RDF - wprowadzenie

Wprowadzenie do RDF: http://www.w3schools.com/rdf.

Zadanie

Walidator stworzony w ramach tego zadania powiennien działać podobnie do walidatora W3C na bardzo wąskim podzbiorze RDF. Proszę ograniczyć się do konstrukcji pokazanych w poniższym przykładzie i pliku testowym.

Parser dla wejścia:

<?xml version="1.0"?>

<rdf:RDF
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" 
xmlns:cd="http://www.recshop.fake/cd#"> 

<rdf:Description
 rdf:about="http://www.recshop.fake/cd/Empire Burlesque">
  <cd:artist rdf:resource="http://www.recshop.fake/cd/dylan" />
  <cd:price>10.90</cd:price>
</rdf:Description>

</rdf:RDF> 

ma wypisywać na wyjściu:

subject: http://www.recshop.fake/cd/Empire Burlesque	
predicate: http://www.recshop.fake/cd#artist
object: http://www.recshop.fake/cd/dylan

subject: http://www.recshop.fake/cd/Empire Burlesque	
predicate: http://www.recshop.fake/cd#price
object: "10.90"

W przypadku pojawienia się linii o nieprawidłowym formacie powinnien być wypisany komunikat o błędzie, podobnie jak to jest w przypadku walidatora W3C.

Przykładowy plik testowy testfile.rdf.

Materiały dodatkowe

Lex and YACC primer/HOWTO
"Yacc: Yet Another Compiler-Compiler", S.C. Johnson