117 procedure LuaCallError(error, call, paramsyntax: shortstring); |
117 procedure LuaCallError(error, call, paramsyntax: shortstring); |
118 begin |
118 begin |
119 LuaError(call + ': ' + error + ' function syntax: ' + call + ' ( ' + paramsyntax + ' )'); |
119 LuaError(call + ': ' + error + ' function syntax: ' + call + ' ( ' + paramsyntax + ' )'); |
120 end; |
120 end; |
121 |
121 |
|
122 procedure LuaParameterCountError(expected, call, paramsyntax: shortstring; wrongcount: LongInt); inline; |
|
123 begin |
|
124 // TODO: i18n? |
|
125 LuaCallError('Wrong number of parameters! (is: ' + inttostr(wrongcount) + ', should be: '+ expected + ')', call, paramsyntax); |
|
126 end; |
|
127 |
|
128 // TODO remove this precedure after all references have been changed to one of the checks below |
122 procedure LuaParameterCountError(call, paramsyntax: shortstring; wrongcount: LongInt); inline; |
129 procedure LuaParameterCountError(call, paramsyntax: shortstring; wrongcount: LongInt); inline; |
123 begin |
130 begin |
124 // TODO: i18n? |
131 LuaCallError('Wrong number of parameters! (actual: ' + inttostr(wrongcount) + ')', call, paramsyntax); |
125 LuaCallError('Wrong number of parameters (' + inttostr(wrongcount) + ')!', call, paramsyntax); |
|
126 end; |
132 end; |
127 |
133 |
128 // compare with allowed count |
134 // compare with allowed count |
129 function CheckLuaParameterCount(L : Plua_State; count: LongInt; call, paramsyntax: shortstring): boolean; inline; |
135 function CheckLuaParameterCount(L : Plua_State; count: LongInt; call, paramsyntax: shortstring): boolean; inline; |
130 var c: LongInt; |
136 var c: LongInt; |
131 begin |
137 begin |
132 c:= lua_gettop(L); |
138 c:= lua_gettop(L); |
133 if c <> count then |
139 if c <> count then |
134 begin |
140 begin |
135 LuaParameterCountError(call, paramsyntax, c); |
141 LuaParameterCountError('exactly ' + inttostr(count), call, paramsyntax, c); |
136 exit(false); |
142 exit(false); |
137 end; |
143 end; |
138 |
144 |
139 CheckLuaParameterCount:= true; |
145 CheckLuaParameterCount:= true; |
140 end; |
146 end; |
143 function CheckAndFetchLuaParameterCount(L : Plua_State; count1, count2: LongInt; call, paramsyntax: shortstring; out actual: LongInt): boolean; inline; |
149 function CheckAndFetchLuaParameterCount(L : Plua_State; count1, count2: LongInt; call, paramsyntax: shortstring; out actual: LongInt): boolean; inline; |
144 begin |
150 begin |
145 actual:= lua_gettop(L); |
151 actual:= lua_gettop(L); |
146 if (actual <> count1) and (actual <> count2) then |
152 if (actual <> count1) and (actual <> count2) then |
147 begin |
153 begin |
148 LuaParameterCountError(call, paramsyntax, actual); |
154 LuaParameterCountError('either ' + inttostr(count1) + ' or ' + inttostr(count2), call, paramsyntax, actual); |
149 exit(false); |
155 exit(false); |
150 end; |
156 end; |
151 |
157 |
152 CheckAndFetchLuaParameterCount:= true; |
158 CheckAndFetchLuaParameterCount:= true; |
153 end; |
159 end; |
156 function CheckAndFetchLuaParameterCount(L : Plua_State; minCount: LongInt; call, paramsyntax: shortstring; out actual: LongInt): boolean; inline; |
162 function CheckAndFetchLuaParameterCount(L : Plua_State; minCount: LongInt; call, paramsyntax: shortstring; out actual: LongInt): boolean; inline; |
157 begin |
163 begin |
158 actual:= lua_gettop(L); |
164 actual:= lua_gettop(L); |
159 if (actual < minCount) then |
165 if (actual < minCount) then |
160 begin |
166 begin |
161 LuaParameterCountError(call, paramsyntax, actual); |
167 LuaParameterCountError(inttostr(minCount) + ' or more', call, paramsyntax, actual); |
162 exit(false); |
168 exit(false); |
163 end; |
169 end; |
164 |
170 |
165 CheckAndFetchLuaParameterCount:= true; |
171 CheckAndFetchLuaParameterCount:= true; |
166 end; |
172 end; |