-
Notifications
You must be signed in to change notification settings - Fork 0
/
element.e
54 lines (41 loc) · 1.4 KB
/
element.e
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
-- element handlers for the test script
include misc.e
global function start_handler(integer data, object el, object attr)
object element, elem
element = peek({el, 12}) -- see *note.
elem = peek(el)
if elem != 116 then -- 116 being ascii 't' so we don't print out the <test>
puts(1, element) -- element. This is obviously not the way to handle this.
puts(1, ": ") -- @todo: find a better way of handling elements.
end if
return 0
end function
global function end_handler(integer data, object el)
object element
element = peek({el, 12}) -- see *note.
puts(1, "</")
puts(1, element)
puts(1, ">\n")
return 0
end function
global function char_handler(integer data, object cd, atom len)
object char_data
char_data = peek({cd, len})
puts(1, char_data)
puts(1, "\n")
return 0
end function
global function comment_handler(integer data, object cmnt)
object cmnt_data
cmnt_data = peek({cmnt, 40}) -- see *note.
puts(1, "<!--")
puts(1, cmnt_data)
puts(1, "-->\n")
return 0
end function
-- *note:
-- This isn't the best way to get the elements, as there is no way to pass the
-- length of the element to the handler function. But it seems to work ok, with
-- no ill side effects.
-- Of course parse() should return the elements as a sequence, but instead
-- returns each character in the element as an atom.