1234567891011121314151617181920212223242526272829303132 |
- #!/usr/bin/env kuroko
- '''
- @brief Generate symbol table.
- '''
- import fileio
- let size = 'quad'
- def extern(sym):
- print(f'.extern {sym}')
- print(f'.type {sym}, @function')
- def entry(sym):
- print(f'.{size} {sym}')
- print(f'.asciz "{sym}"')
- let ignore = ['abs','kernel_symbols_start','kernel_symbols_end']
- let lines = [x.strip().split(' ')[2] for x in fileio.stdin.readlines() if x not in ignore]
- print('.section .symbols')
- print()
- for name in lines:
- extern(name)
- print('.global kernel_symbols_start')
- print('kernel_symbols_start:')
- print()
- for name in lines:
- entry(name)
- print('.global kernel_symbols_end')
- print('kernel_symbols_end:')
|