1 | -- tolua: verbatim class |
---|
2 | -- Written by Waldemar Celes |
---|
3 | -- TeCGraf/PUC-Rio |
---|
4 | -- Jul 1998 |
---|
5 | -- $Id: verbatim.lua,v 1.3 2000/01/24 20:41:16 celes Exp $ |
---|
6 | |
---|
7 | -- This code is free software; you can redistribute it and/or modify it. |
---|
8 | -- The software provided hereunder is on an "as is" basis, and |
---|
9 | -- the author has no obligation to provide maintenance, support, updates, |
---|
10 | -- enhancements, or modifications. |
---|
11 | |
---|
12 | |
---|
13 | |
---|
14 | -- Verbatim class |
---|
15 | -- Represents a line translated directed to the binding file. |
---|
16 | -- The following filds are stored: |
---|
17 | -- line = line text |
---|
18 | classVerbatim = { |
---|
19 | line = '', |
---|
20 | cond = nil, -- condition: where to generate the code (s=suport, r=register) |
---|
21 | } |
---|
22 | classVerbatim.__index = classVerbatim |
---|
23 | setmetatable(classVerbatim,classFeature) |
---|
24 | |
---|
25 | -- preamble verbatim |
---|
26 | function classVerbatim:preamble () |
---|
27 | if self.cond == '' then |
---|
28 | write(self.line) |
---|
29 | end |
---|
30 | end |
---|
31 | |
---|
32 | -- support code |
---|
33 | function classVerbatim:supcode () |
---|
34 | if strfind(self.cond,'s') then |
---|
35 | write(self.line) |
---|
36 | write('\n') |
---|
37 | end |
---|
38 | end |
---|
39 | |
---|
40 | -- register code |
---|
41 | function classVerbatim:register (pre) |
---|
42 | if strfind(self.cond,'r') then |
---|
43 | write(self.line) |
---|
44 | end |
---|
45 | end |
---|
46 | |
---|
47 | |
---|
48 | -- Print method |
---|
49 | function classVerbatim:print (ident,close) |
---|
50 | print(ident.."Verbatim{") |
---|
51 | print(ident.." line = '"..self.line.."',") |
---|
52 | print(ident.."}"..close) |
---|
53 | end |
---|
54 | |
---|
55 | |
---|
56 | -- Internal constructor |
---|
57 | function _Verbatim (t) |
---|
58 | setmetatable(t,classVerbatim) |
---|
59 | append(t) |
---|
60 | return t |
---|
61 | end |
---|
62 | |
---|
63 | -- Constructor |
---|
64 | -- Expects a string representing the text line |
---|
65 | function Verbatim (l,cond) |
---|
66 | if strsub(l,1,1) == "'" then |
---|
67 | l = strsub(l,2) |
---|
68 | elseif strsub(l,1,1) == '$' then |
---|
69 | cond = 'sr' -- generates in both suport and register fragments |
---|
70 | l = strsub(l,2) |
---|
71 | end |
---|
72 | return _Verbatim { |
---|
73 | line = l, |
---|
74 | cond = cond or '', |
---|
75 | } |
---|
76 | end |
---|
77 | |
---|
78 | |
---|