(decl, decl2, force=1)
| 892 | |
| 893 | |
| 894 | def appenddecl(decl, decl2, force=1): |
| 895 | if not decl: |
| 896 | decl = {} |
| 897 | if not decl2: |
| 898 | return decl |
| 899 | if decl is decl2: |
| 900 | return decl |
| 901 | for k in list(decl2.keys()): |
| 902 | if k == 'typespec': |
| 903 | if force or k not in decl: |
| 904 | decl[k] = decl2[k] |
| 905 | elif k == 'attrspec': |
| 906 | for l in decl2[k]: |
| 907 | decl = setattrspec(decl, l, force) |
| 908 | elif k == 'kindselector': |
| 909 | decl = setkindselector(decl, decl2[k], force) |
| 910 | elif k == 'charselector': |
| 911 | decl = setcharselector(decl, decl2[k], force) |
| 912 | elif k in ['=', 'typename']: |
| 913 | if force or k not in decl: |
| 914 | decl[k] = decl2[k] |
| 915 | elif k == 'note': |
| 916 | pass |
| 917 | elif k in ['intent', 'check', 'dimension', 'optional', |
| 918 | 'required', 'depend']: |
| 919 | errmess(f'appenddecl: "{k}" not implemented.\n') |
| 920 | else: |
| 921 | raise Exception('appenddecl: Unknown variable definition key: ' + |
| 922 | str(k)) |
| 923 | return decl |
| 924 | |
| 925 | |
| 926 | selectpattern = re.compile( |
no test coverage detected
searching dependent graphs…