Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- import pyparsing as pp
- command_name = pp.Word(pp.alphas)
- argument_name = pp.Word(pp.printables, exclude_chars=';,')
- arguments = pp.Optional(argument_name) + pp.ZeroOrMore(pp.Suppress(',') + argument_name)
- label = pp.Word(pp.alphas) + pp.Optional(pp.Suppress(' ')) + pp.Suppress(":")
- comment = pp.Suppress(';') + pp.Optional(pp.Suppress(' ')) + pp.restOfLine()
- rule = pp.Optional(label) + pp.Optional(command_name) + pp.Optional(arguments) + pp.Optional(comment)
- rule.runTests('''
- mov #2, R0 ;R0 = 2
- mov #3, R1 ;R1 = 3
- add R0, R1 ; R1 = R0 + R1
- loop: add #1, R0
- loop : add #1, R0
- halt ; остановка процессора
- halt
- add #10, R3
- sub R1
- #разные моды:
- mov (R0), R1
- mov (R0)+, R1
- mov -(R0), R1
- mov @R0, R1
- mov @-(R0), R1
- ''')
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement