payload: {"action":"opened","issue":{"url":"https://api.github.com/repos/rednex/rgbds/issues/460","repository_url":"https://api.github.com/repos/rednex/rgbds","labels_url":"https://api.github.com/repos/rednex/rgbds/issues/460/labels{/name}","comments_url":"https://api.github.com/repos/rednex/rgbds/issues/460/comments","events_url":"https://api.github.com/repos/rednex/rgbds/issues/460/events","html_url":"https://github.com/rednex/rgbds/issues/460","id":536123305,"node_id":"MDU6SXNzdWU1MzYxMjMzMDU=","number":460,"title":"[Feature request] Variable macro argument expansions","user":{"login":"aaaaaa123456789","id":6129020,"node_id":"MDQ6VXNlcjYxMjkwMjA=","avatar_url":"https://avatars0.githubusercontent.com/u/6129020?v=4","gravatar_id":"","url":"https://api.github.com/users/aaaaaa123456789","html_url":"https://github.com/aaaaaa123456789","followers_url":"https://api.github.com/users/aaaaaa123456789/followers","following_url":"https://api.github.com/users/aaaaaa123456789/following{/other_user}","gists_url":"https://api.github.com/users/aaaaaa123456789/gists{/gist_id}","starred_url":"https://api.github.com/users/aaaaaa123456789/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/aaaaaa123456789/subscriptions","organizations_url":"https://api.github.com/users/aaaaaa123456789/orgs","repos_url":"https://api.github.com/users/aaaaaa123456789/repos","events_url":"https://api.github.com/users/aaaaaa123456789/events{/privacy}","received_events_url":"https://api.github.com/users/aaaaaa123456789/received_events","type":"User","site_admin":false},"labels":[],"state":"open","locked":false,"assignee":null,"assignees":[],"milestone":null,"comments":0,"created_at":"2019-12-11T03:37:16Z","updated_at":"2019-12-11T03:37:16Z","closed_at":null,"author_association":"NONE","body":"What I'm asking for here is some syntax of the form `\\(<expr>)` (or `\\{<expr>}` or anything like that) that would get replaced with the corresponding macro argument. For instance, `\\(1)` would be equivalent to what `\\1` does currently.  \r\nIf RGBASM cannot work out the value of the expression, or if it comes out to a non-positive value or a value above the number of macro arguments, it should issue an error (or a warning and a blank substitution).\r\n\r\nPotential uses:\r\n\r\n1. Macro arguments above 9. Long macros are forced to use `shift`; this makes them harder to read. `\\(10)` would be easier to understand.\r\n2. Macros with variable argument lists. Most of these can be done with `shift` (and some creative usage of variables), but they could be far more straightforward this way. A simple, trivial example:\r\n```\r\nreversedb: MACRO\r\n___current = 0\r\n  rept _NARG\r\n    db \\(_NARG - ___current)\r\n___current = ___current + 1\r\n  endr\r\nENDM\r\n```\r\n\r\nThoughts? Ideas?"}}
other: {"actor":{"display_login":"aaaaaa123456789"}}