tagged release 0.7.1
[parrot.git] / languages / tcl / src / grammar / expr / parse.pir
blobe2c96171b6f7b68e8892120c659403d207a54d33
2 =head1 TITLE
4 parse.pir - Parsing support subroutines for [expr]
6 =cut
8 .sub 'invalid_octal'
9     .param pmc mob
10     .param pmc adverbs :named :slurpy
12     $S0 = mob
13     $S0 = '0' . $S0
14     $S0 = 'expected integer but got "' . $S0
15     $S0 = $S0 . '" (looks like invalid octal number)'
17     die $S0
18 .end
20 .sub 'unknown_math_function'
21     .param pmc mob
22     .param pmc adverbs :named :slurpy
24     $S0 = mob[0]
25     $S0 = 'unknown math function "' . $S0
26     $S0 = $S0 . '"'
28     die $S0
29 .end
31 .sub 'error'
32     .param pmc    mob
33     .param string msg
34     .param pmc    adverbs :named :slurpy
36     die msg
37 .end
39 .sub 'syntax_error'
40     .param pmc    mob
41     .param string msg
42     .param pmc    adverbs :named :slurpy
44     .local pmc target
45     target = getattribute mob, '$.target'
47     $S0 = target
48     $S0 = 'syntax error in expression "' . $S0
49     $S0 .= '": '
50     $S0 .= msg
52     die $S0
53 .end
55 .sub 'syntax_error_variable_or_function'
56     .param pmc    mob
57     .param pmc    adverbs :named :slurpy
59     .local string target
60     $P0 = getattribute mob, '$.target'
61     target = $P0
63     .local string msg
64     msg = 'the word "'
65     msg .= target
66     msg .= '" requires a preceding $ if '
67     msg .= "it's a variable or function arguments if it's a function"
69     syntax_error(mob, msg, 'adverbs' => adverbs)
70 .end
72 # Local Variables:
73 #   mode: pir
74 #   fill-column: 100
75 # End:
76 # vim: expandtab shiftwidth=4 ft=pir: