summary refs log tree commit diff stats
path: root/nim/rst.pas
diff options
context:
space:
mode:
authorAndreas Rumpf <rumpf_a@web.de>2008-12-12 14:02:27 +0100
committerAndreas Rumpf <rumpf_a@web.de>2008-12-12 14:02:27 +0100
commitddaedab835fa7ea3457f21a772d636921defdc46 (patch)
tree8f96b5a3a6700704e0a64bdcdedee1d2caf68517 /nim/rst.pas
parent2cd136cf7a0210e3cfde7a6f8ba32c9f09560047 (diff)
downloadNim-ddaedab835fa7ea3457f21a772d636921defdc46.tar.gz
version 0.7.2
Diffstat (limited to 'nim/rst.pas')
-rw-r--r--nim/rst.pas24
1 files changed, 15 insertions, 9 deletions
diff --git a/nim/rst.pas b/nim/rst.pas
index b5e5846b1..cc92e41eb 100644
--- a/nim/rst.pas
+++ b/nim/rst.pas
@@ -469,19 +469,24 @@ end;
 
 // ---------------------------------------------------------------
 
-function addNodes(n: PRstNode): string;
+procedure addNodesAux(n: PRstNode; var result: string);
 var
   i: int;
 begin
   if n.kind = rnLeaf then
-    result := n.text
+    add(result, n.text)
   else begin
-    result := '';
     for i := 0 to rsonsLen(n)-1 do
-      result := result +{&} addNodes(n.sons[i])
+      addNodesAux(n.sons[i], result)
   end
 end;
 
+function addNodes(n: PRstNode): string;
+begin
+  result := '';
+  addNodesAux(n, result);
+end;
+
 procedure rstnodeToRefnameAux(n: PRstNode; var r: string; var b: bool);
 var
   i: int;
@@ -1118,7 +1123,7 @@ begin
     inc(p.idx);
     while p.tok[p.idx].kind in [tkWord, tkPunct, tkAdornment, tkOther] do begin
       if p.tok[p.idx].symbol = '::' then break;
-      result := result +{&} p.tok[p.idx].symbol;
+      add(result, p.tok[p.idx].symbol);
       inc(p.idx);
     end;
     if (p.tok[p.idx].kind = tkWhite) then inc(p.idx);
@@ -1287,12 +1292,13 @@ begin
             break;
           end
           else begin
-            n.text := n.text +{&} nl +{&} repeatChar(p.tok[p.idx].ival - indent);
+            add(n.text, nl);
+            add(n.text, repeatChar(p.tok[p.idx].ival - indent));
             inc(p.idx)
           end
         end
         else begin
-          n.text := n.text +{&} p.tok[p.idx].symbol;
+          add(n.text, p.tok[p.idx].symbol);
           inc(p.idx)
         end
       end
@@ -1300,7 +1306,7 @@ begin
   end
   else begin
     while not (p.tok[p.idx].kind in [tkIndent, tkEof]) do begin
-      n.text := n.text +{&} p.tok[p.idx].symbol;
+      add(n.text, p.tok[p.idx].symbol);
       inc(p.idx)
     end
   end;
@@ -1560,7 +1566,7 @@ begin
       i := 0;
       while not (p.tok[p.idx].kind in [tkIndent, tkEof]) do begin
         if (tokEnd(p) <= cols[i]) then begin
-          row[i] := row[i] +{&} p.tok[p.idx].symbol;
+          add(row[i], p.tok[p.idx].symbol);
           inc(p.idx);
         end
         else begin