Skip to content

Commit 6cb44da

Browse files
authored
Merge pull request #3887 from BsAtHome/fix_halcompile-keywords
halcompile: Don't use python defined function names as variable names
2 parents 4025bf9 + 5d8c852 commit 6cb44da

1 file changed

Lines changed: 56 additions & 55 deletions

File tree

src/hal/utils/halcompile.g

Lines changed: 56 additions & 55 deletions
Original file line numberDiff line numberDiff line change
@@ -48,7 +48,7 @@ parser Hal:
4848
| "notes" String ";" {{ notes(String) }}
4949
| "description" String ";" {{ description(String) }}
5050
| "examples" String ";" {{ examples(String) }}
51-
| "license" String ";" {{ license(String) }}
51+
| "license" String ";" {{ license_(String) }}
5252
| "author" String ";" {{ author(String) }}
5353
| "include" Header ";" {{ include(Header) }}
5454
| "modparam" NAME {{ NAME1=NAME; }} NAME OptSAssign OptString ";" {{ modparam(NAME1, NAME, OptSAssign, OptString) }}
@@ -187,7 +187,7 @@ def description(doc):
187187
def examples(doc):
188188
docs.append(('examples', doc));
189189

190-
def license(doc):
190+
def license_(doc):
191191
docs.append(('license', doc));
192192

193193
def author(doc):
@@ -199,9 +199,9 @@ def see_also(doc):
199199
def notes(doc):
200200
docs.append(('notes', doc));
201201

202-
def type2type(type):
202+
def type2type(type_):
203203
# When we start warning about s32/u32 this is where the warning goes
204-
return typemap.get(type, type)
204+
return typemap.get(type_, type_)
205205

206206
def checkarray(name, array):
207207
hashes = len(re.findall("#+", name))
@@ -217,21 +217,21 @@ def check_name_ok(name):
217217
if name in names:
218218
Error("Duplicate item name %s" % name)
219219

220-
def pin(name, type, array, dir, doc, value, personality):
220+
def pin(name, type_, array, dir_, doc, value, personality):
221221
checkarray(name, array)
222-
type = type2type(type)
222+
type_ = type2type(type_)
223223
check_name_ok(name)
224-
docs.append(('pin', name, type, array, dir, doc, value, personality))
224+
docs.append(('pin', name, type_, array, dir_, doc, value, personality))
225225
names[name] = None
226-
pins.append((name, type, array, dir, value, personality))
226+
pins.append((name, type_, array, dir_, value, personality))
227227

228-
def param(name, type, array, dir, doc, value, personality):
228+
def param(name, type_, array, dir_, doc, value, personality):
229229
checkarray(name, array)
230-
type = type2type(type)
230+
type_ = type2type(type_)
231231
check_name_ok(name)
232-
docs.append(('param', name, type, array, dir, doc, value, personality))
232+
docs.append(('param', name, type_, array, dir_, doc, value, personality))
233233
names[name] = None
234-
params.append((name, type, array, dir, value, personality))
234+
params.append((name, type_, array, dir_, value, personality))
235235

236236
def function(name, fp, doc):
237237
check_name_ok(name)
@@ -244,15 +244,15 @@ def option(name, value):
244244
Error("Duplicate option name %s" % name)
245245
options[name] = value
246246

247-
def variable(type, name, array, default):
247+
def variable(type_, name, array, default):
248248
check_name_ok(name)
249249
names[name] = None
250-
variables.append((type, name, array, default))
250+
variables.append((type_, name, array, default))
251251

252-
def modparam(type, name, default, doc):
252+
def modparam(type_, name, default, doc):
253253
check_name_ok(name)
254254
names[name] = None
255-
modparams.append((type, name, default, doc))
255+
modparams.append((type_, name, default, doc))
256256

257257
def include(value):
258258
includes.append((value))
@@ -299,13 +299,14 @@ static int comp_id;
299299
return '"%s"' % s
300300

301301
print("#ifdef MODULE_INFO", file=f)
302+
licens = None
302303
for v in docs:
303304
if not v: continue
304305
v = ":".join(map(str, v))
305306
print("MODULE_INFO(linuxcnc, %s);" % q(v), file=f)
306-
license = finddoc('license')
307-
if license and license[1]:
308-
print("MODULE_LICENSE(\"%s\");" % license[1].split("\n")[0], file=f)
307+
licens = finddoc('license')
308+
if licens and licens[1]:
309+
print("MODULE_LICENSE(\"%s\");" % licens[1].split("\n")[0], file=f)
309310
print("#endif // MODULE_INFO", file=f)
310311
print("", file=f)
311312

@@ -314,18 +315,18 @@ static int comp_id;
314315

315316
has_array = False
316317
has_personality = False
317-
for name, type, array, dir, value, personality in pins:
318+
for name, type_, array, dir_, value, personality in pins:
318319
if array: has_array = True
319320
if isinstance(array, tuple): has_personality = True
320321
if personality: has_personality = True
321-
for name, type, array, dir, value, personality in params:
322+
for name, type_, array, dir_, value, personality in params:
322323
if array: has_array = True
323324
if isinstance(array, tuple): has_personality = True
324325
if personality: has_personality = True
325-
for type, name, default, doc in modparams:
326-
decl = mp_decl_map[type]
326+
for type_, name, default, doc in modparams:
327+
decl = mp_decl_map[type_]
327328
if decl:
328-
print("%s %s" % (type, name), end=' ', file=f)
329+
print("%s %s" % (type_, name), end=' ', file=f)
329330
if default: print("= %s;" % default, file=f)
330331
else: print(";", file=f)
331332
print("%s(%s, %s);" % (decl, name, q(doc)), file=f)
@@ -336,27 +337,27 @@ static int comp_id;
336337
if has_personality:
337338
print(" int _personality;", file=f)
338339

339-
for name, type, array, dir, value, personality in pins:
340+
for name, type_, array, dir_, value, personality in pins:
340341
if array:
341342
if isinstance(array, tuple): array = array[0]
342-
print(" hal_%s_t *%s_p[%s];" % (type, to_c(name), array), file=f)
343+
print(" hal_%s_t *%s_p[%s];" % (type_, to_c(name), array), file=f)
343344
else:
344-
print(" hal_%s_t *%s_p;" % (type, to_c(name)), file=f)
345+
print(" hal_%s_t *%s_p;" % (type_, to_c(name)), file=f)
345346
names[name] = 1
346347

347-
for name, type, array, dir, value, personality in params:
348+
for name, type_, array, dir_, value, personality in params:
348349
if array:
349350
if isinstance(array, tuple): array = array[0]
350-
print(" hal_%s_t %s_p[%s];" % (type, to_c(name), array), file=f)
351+
print(" hal_%s_t %s_p[%s];" % (type_, to_c(name), array), file=f)
351352
else:
352-
print(" hal_%s_t %s_p;" % (type, to_c(name)), file=f)
353+
print(" hal_%s_t %s_p;" % (type_, to_c(name)), file=f)
353354
names[name] = 1
354355

355-
for type, name, array, value in variables:
356+
for type_, name, array, value in variables:
356357
if array:
357-
print(" %s %s_p[%d];" % (type, name, array), file=f)
358+
print(" %s %s_p[%d];" % (type_, name, array), file=f)
358359
else:
359-
print(" %s %s_p;" % (type, name), file=f)
360+
print(" %s %s_p;" % (type_, name), file=f)
360361
if has_data:
361362
print(" void *_data;", file=f)
362363

@@ -422,7 +423,7 @@ static int comp_id;
422423
# the extra_setup() function may have changed the personality
423424
if has_personality:
424425
print(" personality = inst->_personality;", file=f)
425-
for name, type, array, dir, value, personality in pins:
426+
for name, type_, array, dir_, value, personality in pins:
426427
if personality:
427428
print("if(%s) {" % personality, file=f)
428429
if array:
@@ -437,23 +438,23 @@ static int comp_id;
437438
else: cnt = array
438439
print(" for(j=0; j < (%s); j++) {" % cnt, file=f)
439440
print(" r = hal_pin_%s_newf(%s, &(inst->%s_p[j]), comp_id," % (
440-
type, dirmap[dir], to_c(name)), file=f)
441+
type_, dirmap[dir_], to_c(name)), file=f)
441442
print(" \"%%s%s\", prefix, j);" % to_hal("." + name), file=f)
442443
print(" if(r != 0) return r;", file=f)
443444
if value is not None:
444445
print(" *(inst->%s_p[j]) = %s;" % (to_c(name), value), file=f)
445446
print(" }", file=f)
446447
else:
447448
print(" r = hal_pin_%s_newf(%s, &(inst->%s_p), comp_id," % (
448-
type, dirmap[dir], to_c(name)), file=f)
449+
type_, dirmap[dir_], to_c(name)), file=f)
449450
print(" \"%%s%s\", prefix);" % to_hal("." + name), file=f)
450451
print(" if(r != 0) return r;", file=f)
451452
if value is not None:
452453
print(" *(inst->%s_p) = %s;" % (to_c(name), value), file=f)
453454
if personality:
454455
print("}", file=f)
455456

456-
for name, type, array, dir, value, personality in params:
457+
for name, type_, array, dir_, value, personality in params:
457458
if personality:
458459
print("if(%s) {" % personality, file=f)
459460
if array:
@@ -468,23 +469,23 @@ static int comp_id;
468469
else: cnt = array
469470
print(" for(j=0; j < (%s); j++) {" % cnt, file=f)
470471
print(" r = hal_param_%s_newf(%s, &(inst->%s_p[j]), comp_id," % (
471-
type, dirmap[dir], to_c(name)), file=f)
472+
type_, dirmap[dir_], to_c(name)), file=f)
472473
print(" \"%%s%s\", prefix, j);" % to_hal("." + name), file=f)
473474
print(" if(r != 0) return r;", file=f)
474475
if value is not None:
475476
print(" inst->%s_p[j] = %s;" % (to_c(name), value), file=f)
476477
print(" }", file=f)
477478
else:
478479
print(" r = hal_param_%s_newf(%s, &(inst->%s_p), comp_id," % (
479-
type, dirmap[dir], to_c(name)), file=f)
480+
type_, dirmap[dir_], to_c(name)), file=f)
480481
print(" \"%%s%s\", prefix);" % to_hal("." + name), file=f)
481482
if value is not None:
482483
print(" inst->%s_p = %s;" % (to_c(name), value), file=f)
483484
print(" if(r != 0) return r;", file=f)
484485
if personality:
485486
print("}", file=f)
486487

487-
for type, name, array, value in variables:
488+
for type_, name, array, value in variables:
488489
if value is None: continue
489490
if array:
490491
print(" for(j=0; j < %s; j++) {" % array, file=f)
@@ -743,29 +744,29 @@ int __comp_parse_names(int *argc, char **argv) {
743744
if options.get("period"):
744745
print("#undef fperiod", file=f)
745746
print("#define fperiod (period * 1e-9)", file=f)
746-
for name, type, array, dir, value, personality in pins:
747+
for name, type_, array, dir_, value, personality in pins:
747748
print("#undef %s" % to_c(name), file=f)
748749
print("#undef %s_ptr" % to_c(name), file=f)
749750
if array:
750751
print("#define %s_ptr(i) (__comp_inst->%s_p[i])" % (to_c(name), to_c(name)), file=f)
751-
if dir == 'in':
752+
if dir_ == 'in':
752753
print("#define %s(i) (0+*(__comp_inst->%s_p[i]))" % (to_c(name), to_c(name)), file=f)
753754
else:
754755
print("#define %s(i) (*(__comp_inst->%s_p[i]))" % (to_c(name), to_c(name)), file=f)
755756
else:
756757
print("#define %s_ptr (__comp_inst->%s_p)" % (to_c(name), to_c(name)), file=f)
757-
if dir == 'in':
758+
if dir_ == 'in':
758759
print("#define %s (0+*__comp_inst->%s_p)" % (to_c(name), to_c(name)), file=f)
759760
else:
760761
print("#define %s (*__comp_inst->%s_p)" % (to_c(name), to_c(name)), file=f)
761-
for name, type, array, dir, value, personality in params:
762+
for name, type_, array, dir_, value, personality in params:
762763
print("#undef %s" % to_c(name), file=f)
763764
if array:
764765
print("#define %s(i) (__comp_inst->%s_p[i])" % (to_c(name), to_c(name)), file=f)
765766
else:
766767
print("#define %s (__comp_inst->%s_p)" % (to_c(name), to_c(name)), file=f)
767768

768-
for type, name, array, value in variables:
769+
for type_, name, array, value in variables:
769770
name = name.replace("*", "")
770771
print("#undef %s" % name, file=f)
771772
print("#define %s (__comp_inst->%s_p)" % (name, name), file=f)
@@ -898,10 +899,10 @@ def document(filename, outfilebase):
898899
f = open(outfilename, "w")
899900

900901
has_personality = False
901-
for name, type, array, dir, value, personality in pins:
902+
for name, type_, array, dir_, value, personality in pins:
902903
if personality: has_personality = True
903904
if isinstance(array, tuple): has_personality = True
904-
for name, type, array, dir, value, personality in params:
905+
for name, type_, array, dir_, value, personality in params:
905906
if personality: has_personality = True
906907
if isinstance(array, tuple): has_personality = True
907908

@@ -954,19 +955,19 @@ def document(filename, outfilebase):
954955
print("*loadrt %s* [*count*=_N_|*names*=_name1_[,_name2_...]] [*personality*=_P1_[,_P2_...]]" % comp_name, end='', file=f)
955956
else:
956957
print("*loadrt %s* [*count*=_N_|*names*=_name1_[,_name2_...]]" % comp_name, end='', file=f)
957-
for type, name, default, doc in modparams:
958-
if type == "dummy":
958+
for type_, name, default, doc in modparams:
959+
if type_ == "dummy":
959960
print(" [*%s*=_value_[,_value_...]]" % name, end='', file=f)
960961
else:
961962
print(" [*%s*=_N_]" % name, end='', file=f)
962963
print("", file=f)
963964

964965
hasparamdoc = False
965-
for type, name, default, doc in modparams:
966+
for type_, name, default, doc in modparams:
966967
if doc: hasparamdoc = True
967968

968969
if hasparamdoc:
969-
for type, name, default, doc in modparams:
970+
for type_, name, default, doc in modparams:
970971
print("\n*%s*" % name, end='', file=f)
971972
if default:
972973
print(" [default: %s]::" % default, file=f)
@@ -997,9 +998,9 @@ def document(filename, outfilebase):
997998
print("// missing description\n", file=f)
998999

9991000
print("\n== PINS\n", file=f)
1000-
for _, name, type, array, dir, doc, value, personality in finddocs('pin'):
1001+
for _, name, type_, array, dir_, doc, value, personality in finddocs('pin'):
10011002
print("%s" % to_hal_man(name), end=' ', file=f)
1002-
print(type, dir, end=' ', file=f)
1003+
print(type_, dir_, end=' ', file=f)
10031004
if array:
10041005
sz = name.count("#")
10051006
if isinstance(array, tuple):
@@ -1020,9 +1021,9 @@ def document(filename, outfilebase):
10201021

10211022
if params:
10221023
print("\n== PARAMETERS\n", file=f)
1023-
for _, name, type, array, dir, doc, value, personality in finddocs('param'):
1024+
for _, name, type_, array, dir_, doc, value, personality in finddocs('param'):
10241025
print("%s" % to_hal_man(name), end=' ', file=f)
1025-
print(type, dir, end=' ', file=f)
1026+
print(type_, dir_, end=' ', file=f)
10261027
if array:
10271028
sz = name.count("#")
10281029
if isinstance(array, tuple):

0 commit comments

Comments
 (0)