OSSP CVS Repository

ossp - Difference in ossp-pkg/quos/TODO versions 1.9 and 1.10
Not logged in
[Honeypot]  [Browse]  [Home]  [Login]  [Reports
[Search]  [Ticket]  [Timeline
  [History

ossp-pkg/quos/TODO 1.9 -> 1.10

--- TODO 2004/11/02 15:48:24     1.9
+++ TODO 2004/11/02 16:05:33     1.10
@@ -133,7 +133,7 @@
     * creation of web formular (render query)
         sub_render_form (cgi-Object | expression, row, column
 
-- Parsing:
+- Parsing CFG:
 
   OSSP shiela (with tricks)
   OSSP ac (uses Parse::RecDescent)
@@ -168,3 +168,29 @@
                        | m/'[^']*'/
                        | m/[^\s+;]+/
 
+- Parsing RDF:
+
+  my $str = ...; # string representation
+  my $rdf = {};  # AST    representation
+
+  $str =~ s/<Repository([^>]+)>(.+?)<\/Repository>/&do_repository($rdf, $1, $2)/sge;
+  sub do_repository {
+      my ($rdf, $attr, $str) = @_;
+      my ($name) = ($attr =~ m/rdf:resource="([^"]+)"/s);
+      $rdf->{$name} = {};
+      $str =~ s/<rdf:Description([^>]+)>(.+?)<\/rdf:Description>/&do_destription($rdf->{$name}, $1, $2)/sge;
+      sub do_description {
+          my ($rdf, $attr, $str) = @_;
+          $rdf->{...} = ...;
+      }
+  }
+
+  1. geht nur, wenn die Sprache keine rekursiven Elemente enthält, d.h. ein
+     Element kann nicht in sich selber (in beliebiger Tiefe) vorkommen
+     (Hinweis: Für Compilerbauer uninteressant)
+
+  2. Blockstruktur der Sprache wird direkt Substitution+Funktionsaufruf umgesetzt
+
+  3. Auf jeder Ebene wird die bereits erkannte Information in einer internen
+     Datenstruktur aufgesammelt ($rdf)
+

CVSTrac 2.0.1