diff options
author | Andreas Rumpf <rumpf_a@web.de> | 2008-12-12 14:02:27 +0100 |
---|---|---|
committer | Andreas Rumpf <rumpf_a@web.de> | 2008-12-12 14:02:27 +0100 |
commit | ddaedab835fa7ea3457f21a772d636921defdc46 (patch) | |
tree | 8f96b5a3a6700704e0a64bdcdedee1d2caf68517 /nim/rst.pas | |
parent | 2cd136cf7a0210e3cfde7a6f8ba32c9f09560047 (diff) | |
download | Nim-ddaedab835fa7ea3457f21a772d636921defdc46.tar.gz |
version 0.7.2
Diffstat (limited to 'nim/rst.pas')
-rw-r--r-- | nim/rst.pas | 24 |
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 |