richter 01/05/02 07:35:27
Modified: . Tag: Embperl2c epparse.c test.pl
Embperl Tag: Embperl2c Syntax.pm
Embperl/Syntax Tag: Embperl2c RTF.pm
Log:
Embperl 2 - RTF syntax cont
Revision Changes Path
No revision
No revision
1.4.2.20 +2 -1 embperl/Attic/epparse.c
Index: epparse.c
===================================================================
RCS file: /home/cvs/embperl/Attic/epparse.c,v
retrieving revision 1.4.2.19
retrieving revision 1.4.2.20
diff -u -r1.4.2.19 -r1.4.2.20
--- epparse.c 2001/05/02 12:14:14 1.4.2.19
+++ epparse.c 2001/05/02 14:35:16 1.4.2.20
@@ -9,7 +9,7 @@
# IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED
# WARRANTIES OF MERCHANTIBILITY AND FITNESS FOR A PARTICULAR PURPOSE.
#
-# $Id: epparse.c,v 1.4.2.19 2001/05/02 12:14:14 richter Exp $
+# $Id: epparse.c,v 1.4.2.20 2001/05/02 14:35:16 richter Exp $
#
###################################################################################*/
@@ -241,6 +241,7 @@
if (ppCompilerInfo == NULL)
ppCompilerInfo = &pTokenTable -> pCompilerInfo ;
+ hv_store(pTokenHash, "--cptr", sizeof ("--cptr") - 1, newSViv
((IV)pTokenTable), 0) ;
numTokens = 1 ;
hv_iterinit (pTokenHash) ;
1.70.4.51 +8 -1 embperl/test.pl
Index: test.pl
===================================================================
RCS file: /home/cvs/embperl/test.pl,v
retrieving revision 1.70.4.50
retrieving revision 1.70.4.51
diff -u -r1.70.4.50 -r1.70.4.51
--- test.pl 2001/05/02 11:54:45 1.70.4.50
+++ test.pl 2001/05/02 14:35:17 1.70.4.51
@@ -11,14 +11,17 @@
# IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED
# WARRANTIES OF MERCHANTIBILITY AND FITNESS FOR A PARTICULAR PURPOSE.
#
-# $Id: test.pl,v 1.70.4.50 2001/05/02 11:54:45 richter Exp $
+# $Id: test.pl,v 1.70.4.51 2001/05/02 14:35:17 richter Exp $
#
###################################################################################
# Before `make install' is performed this script should be runnable with
# `make test'. After `make install' it should work as `perl test.pl'
+use HTML::Embperl::Syntax::RTF ;
+my $s = HTML::Embperl::Syntax::RTF -> new ;
+
# version =>
# errors =>
# query_string =>
@@ -569,6 +572,10 @@
'syntax.htm' => {
'version' => 2,
'repeat' => 2,
+ },
+ 'rtf/rtfbasic.asc' => {
+ 'version' => 2,
+ 'syntax' => 'RTF',
},
) ;
No revision
No revision
1.1.4.33 +12 -3 embperl/Embperl/Attic/Syntax.pm
Index: Syntax.pm
===================================================================
RCS file: /home/cvs/embperl/Embperl/Attic/Syntax.pm,v
retrieving revision 1.1.4.32
retrieving revision 1.1.4.33
diff -u -r1.1.4.32 -r1.1.4.33
--- Syntax.pm 2001/05/02 12:14:14 1.1.4.32
+++ Syntax.pm 2001/05/02 14:35:22 1.1.4.33
@@ -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.32 2001/05/02 12:14:14 richter Exp $
+# $Id: Syntax.pm,v 1.1.4.33 2001/05/02 14:35:22 richter Exp $
#
###################################################################################
@@ -253,12 +253,14 @@
sub CloneHash
{
- my ($self, $old, $replace) = @_ ;
+ my ($self, $old, $replace, $seen) = @_ ;
my $new = {} ;
$replace ||= {} ;
my ($v, $k) ;
+ my $seen ||= {$old => $new} ;
+
while (($k, $v) = each (%$old))
{
@@ -270,7 +272,14 @@
{
if (ref ($v) eq 'HASH')
{
- $new -> {$k} = $self -> CloneHash ($v, $replace) ;
+ if ($seen -> {$v})
+ {
+ $new -> {$k} = $seen -> {$v} ;
+ }
+ else
+ {
+ $seen -> {$v} = $new -> {$k} = $self -> CloneHash ($v,
$replace, $seen) ;
+ }
}
elsif (ref ($v) eq 'ARRAY')
{
No revision
No revision
1.1.2.2 +9 -9 embperl/Embperl/Syntax/Attic/RTF.pm
Index: RTF.pm
===================================================================
RCS file: /home/cvs/embperl/Embperl/Syntax/Attic/RTF.pm,v
retrieving revision 1.1.2.1
retrieving revision 1.1.2.2
diff -u -r1.1.2.1 -r1.1.2.2
--- RTF.pm 2001/04/09 06:26:30 1.1.2.1
+++ RTF.pm 2001/05/02 14:35:25 1.1.2.2
@@ -10,7 +10,7 @@
# IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED
# WARRANTIES OF MERCHANTIBILITY AND FITNESS FOR A PARTICULAR PURPOSE.
#
-# $Id: RTF.pm,v 1.1.2.1 2001/04/09 06:26:30 richter Exp $
+# $Id: RTF.pm,v 1.1.2.2 2001/05/02 14:35:25 richter Exp $
#
###################################################################################
@@ -19,6 +19,7 @@
package HTML::Embperl::Syntax::RTF ;
use HTML::Embperl::Syntax (':types') ;
+use HTML::Embperl::Syntax::EmbperlBlocks ;
use strict ;
use vars qw{@ISA %Block %FieldStart %CmdStart} ;
@@ -53,7 +54,7 @@
$self -> AddToRoot ($self -> {-rtfBlocks}) ;
- $self -> {-rtfCmds} = $self -> {-rtfBlocks}{'RTF Field'}{'follow'}{'RTF
FieldStart'}{'include'}{'RTF Blocks'}{'follow'} ;
+ $self -> {-rtfCmds} = $self -> {-rtfBlocks}{'RTF field'}{'follow'}{'RTF
fieldstart'}{'inside'}{'RTF block'}{'follow'} ;
Init ($self) ;
}
@@ -72,8 +73,7 @@
{
my ($self, $cmdname, $procinfo, $taginfo) = @_ ;
- die "'$tagtype' unknown" if (!($ttref = $self -> {-rtfCmds}{$tagtype})) ;
- my $ttfollow = $self -> {-rtfBlocks} ;
+ my $ttfollow = $self -> {-rtfCmds} ;
my $tag = $ttfollow -> {$cmdname} = {
'text' => $cmdname,
@@ -290,7 +290,7 @@
'text' => '{',
'end' => '}',
'unescape' => 1,
- 'follow' => \%Block,
+ 'follow' => {},
},
) ;
@@ -298,17 +298,17 @@
%FieldStart = (
'-lsearch' => 1,
- 'RTF block' => {
+ 'RTF block inside' => {
'text' => '{',
'end' => '}',
'unescape' => 1,
- 'include' => \%Block,
+ 'inside' => \%Block,
},
'RTF fieldstart' => {
'text' => '{\*\fldinst',
'end' => '}',
'unescape' => 1,
- 'include' => \%CmdStart,
+ 'inside' => \%CmdStart,
},
) ;
@@ -320,7 +320,7 @@
'text' => '{',
'end' => '}',
'unescape' => 1,
- 'include' => \%Block,
+ 'inside' => \%Block,
},
'RTF field' => {
'text' => '{\field',
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]