tagged release 0.6.4
[parrot.git] / languages / PIR / src / pasm / pasm_io.pg
blobd5d0e2755d1a498b3a3b9ab9889010f143d05bb4
1 grammar PIR::Grammar;
3 rule io_op {
4   #                   
5   # IO ops            
6   #                   
7   close               <var>
8 | fdopen              <var> \, <simple_expr> \, [ <string_constant> | <string_reg> | <id> ]
9 | getfd               <var> \, <var>
10 | getstdin            <var>
11 | getstdout           <var>
12 | getstderr           <var>
13 | setstdout           <var>
14 | setstderr           <var>
15 | pioctl              <var> \, <var> \, <simple_expr> \, <simple_expr>
16 | open                <var> \, <var> [ \, <var> ]?
17 | printerr            <simple_expr>
18 | print               <simple_expr>
19 | print               <var> \, <simple_expr>
20 | read                <var> \, <simple_expr>
21 | readline            <var> \, <var>
22 | peek                <var> [ \, <var> ]?
23 | stat                <var> \, <var> \, <simple_expr>
24 | seek                <var> \, <simple_expr> \, <simple_expr> [ \, <simple_expr> ]?
25 | tell                <var> \, <var> [ \, <var> ]?
26 | socket              <var> \, <simple_expr> \, <simple_expr> \, <simple_expr> \, <simple_expr>
27 | sockaddr            <var> \, <simple_expr> \, <simple_expr>
28 | connect             <var> \, <var> \, <simple_expr>
29 | recv                <var> \, <var> \, <simple_expr>
30 | send                <var> \, <var> \, <simple_expr>
31 | poll                <var> \, <var> \, <simple_expr> \, <simple_expr> \, <simple_expr>
32 | bind                <var> \, <var> \, <simple_expr>
33 | listen              <var> \, <var> \, <simple_expr>
34 | accept              <var> \, <var>
37 rule math_op {
38   #
39   # Math ops
40   #
41   infix               <simple_expr> \, <var> \, <simple_expr>
42 | n_infix             <simple_expr> \, <var> \, <var> \, <simple_expr>
43 | abs                 <var>
44 | n_abs               <var> \, <simple_expr>
45 | add                 <var> \, <simple_expr> [ \, <simple_expr> ]?
46 | cmod                <var> \, <simple_expr> \, <simple_expr>
47 | dec                 <arg_hack> #
48 | div                 <arg_hack> #
49 | fdiv                <arg_hack> #
50 | ceil                <arg_hack> #
51 | floor               <arg_hack> #
52 | inc                 <arg_hack> #
53 | mod                 <arg_hack> #
54 | mul                 <arg_hack> #
55 | neg                 <arg_hack> #
56 | n_neg               <arg_hack> #
57 | pow                 <arg_hack> #
58 | sub                 <arg_hack> #
59 | sqrt                <arg_hack> #
60   # Transcedental math. ops; shouldn't these go into a lib?
61 | acos                <arg_hack> #
62 | asec                <arg_hack> #
63 | asin                <arg_hack> #
64 | atan                <arg_hack> #
65 | cos                 <arg_hack> #
66 | cosh                <arg_hack> #
67 | exp                 <arg_hack> #
68 | ln                  <arg_hack> #
69 | log10               <arg_hack> #
70 | log2                <arg_hack> #
71 | sec                 <arg_hack> #
72 | sech                <arg_hack> #
73 | sin                 <arg_hack> #
74 | sinh                <arg_hack> #
75 | tan                 <arg_hack> #
76 | tanh                <arg_hack> #
77   # other math ops    
78 | gcd                 <arg_hack> #
79 | lcm                 <arg_hack> #
80 | fact                <arg_hack> #
83 rule string_op {
84   #                   
85   # String ops        
86   #                   
87   ord                 <arg_hack> #
88 | chr                 <arg_hack> #
89 | chopn               <arg_hack> #
90 | concat              <var> \, <simple_expr> [ \, <simple_expr> ]?
91 | n_concat            <arg_hack> #
92 | repeat              <arg_hack> #
93 | n_repeat            <arg_hack> #
94 | length              <arg_hack> #
95 | bytelength          <arg_hack> #
96 | pin                 <arg_hack> #
97 | unpin               <arg_hack> #
98 | substr              <arg_hack> #
99 | index               <arg_hack> #
100 | sprintf             <arg_hack> #
101 | new # ??            <arg_hack> #
102 | stringinfo          <arg_hack> #
103 | upcase              <arg_hack> #
104 | downcase            <arg_hack> #
105 | titlecase           <arg_hack> #
106 | join                <arg_hack> #
107 | split               <arg_hack> #
108 | charset             <arg_hack> #
109 | charsetname         <arg_hack> #
110 | find_charset        <arg_hack> #
111 | trans_charset       <arg_hack> #
112 | encoding            <arg_hack> #
113 | find_encoding       <arg_hack> #
114 | trans_encoding      <arg_hack> #
115 | is_cclass           <arg_hack> #
116 | find_cclass         <arg_hack> #
117 | find_not_cclass     <arg_hack> #
118 | escape              <arg_hack> #
119 | compose             <arg_hack> #