richter 01/03/06 07:36:12
Modified: . Tag: Embperl2c Embperl.xs
Embperl Tag: Embperl2c Syntax.pm
Added: . Tag: Embperl2c Syntax.xs
Log:
Embperl 2 - multiple syntaxes
Revision Changes Path
No revision
No revision
1.29.4.8 +2 -0 embperl/Embperl.xs
Index: Embperl.xs
===================================================================
RCS file: /home/cvs/embperl/Embperl.xs,v
retrieving revision 1.29.4.7
retrieving revision 1.29.4.8
diff -u -r1.29.4.7 -r1.29.4.8
--- Embperl.xs 2000/12/19 09:11:02 1.29.4.7
+++ Embperl.xs 2001/03/06 15:36:10 1.29.4.8
@@ -685,6 +685,8 @@
INCLUDE: DOM.xs
+INCLUDE: Syntax.xs
+
#endif
# Reste Module, so we get the correct boot function
No revision
No revision
1.1.2.1 +24 -0 embperl/Attic/Syntax.xs
No revision
No revision
1.1.4.19 +63 -1 embperl/Embperl/Attic/Syntax.pm
Index: Syntax.pm
===================================================================
RCS file: /home/cvs/embperl/Embperl/Attic/Syntax.pm,v
retrieving revision 1.1.4.18
retrieving revision 1.1.4.19
diff -u -r1.1.4.18 -r1.1.4.19
--- Syntax.pm 2001/03/06 12:33:43 1.1.4.18
+++ Syntax.pm 2001/03/06 15:36:11 1.1.4.19
@@ -10,7 +10,7 @@
# IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED
# WARRANTIES OF MERCHANTIBILITY AND FITNESS FOR A PARTICULAR PURPOSE.
#
-# $Id: Syntax.pm,v 1.1.4.18 2001/03/06 12:33:43 richter Exp $
+# $Id: Syntax.pm,v 1.1.4.19 2001/03/06 15:36:11 richter Exp $
#
###################################################################################
@@ -119,6 +119,68 @@
}
}
+# ---------------------------------------------------------------------------------
+#
+# Get root
+#
+# ---------------------------------------------------------------------------------
+
+
+sub GetRoot
+
+ {
+ my ($self) = @_ ;
+
+ return $self -> {-root} ;
+ }
+
+
+# ---------------------------------------------------------------------------------
+#
+# Get/create named syntax
+#
+# ---------------------------------------------------------------------------------
+
+
+sub GetSyntax
+
+ {
+ my ($name) = @_ ;
+
+ my @names = map { /::/?$_:'HTML::Embperl::Syntax::'. $_ } split (/\s/, $name) ;
+ my $name = join (' ', @names) ;
+
+ return undef if (!$name) ;
+ return $Syntax{$name} if (exists ($Syntax{$name})) ;
+
+ foreach (@names)
+ {
+ eval "require $_" ;
+ warn $@ ;
+ return undef if ($@) ;
+ }
+
+ my $first = shift @names ;
+
+ my $self = $first -> new ;
+
+ foreach (@names)
+ {
+ &{"$_::new"}($self) ;
+ }
+
+ return $Syntax{$name} = BuildTokenTable ($self -> GetRoot) ;
+ }
+
+
+
+
+
+###################################################################################
+#
+# Definitions for documents
+#
+###################################################################################
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]