{"action":"created","issue":{"url":"https://api.github.com/repos/KSP-KOS/KOS/issues/253","labels_url":"https://api.github.com/repos/KSP-KOS/KOS/issues/253/labels{/name}","comments_url":"https://api.github.com/repos/KSP-KOS/KOS/issues/253/comments","events_url":"https://api.github.com/repos/KSP-KOS/KOS/issues/253/events","html_url":"https://github.com/KSP-KOS/KOS/issues/253","id":44589366,"number":253,"title":"can't use string values that start with the \"$\" character.","user":{"login":"Dunbaratu","id":5216848,"avatar_url":"https://avatars.githubusercontent.com/u/5216848?v=3","gravatar_id":"","url":"https://api.github.com/users/Dunbaratu","html_url":"https://github.com/Dunbaratu","followers_url":"https://api.github.com/users/Dunbaratu/followers","following_url":"https://api.github.com/users/Dunbaratu/following{/other_user}","gists_url":"https://api.github.com/users/Dunbaratu/gists{/gist_id}","starred_url":"https://api.github.com/users/Dunbaratu/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/Dunbaratu/subscriptions","organizations_url":"https://api.github.com/users/Dunbaratu/orgs","repos_url":"https://api.github.com/users/Dunbaratu/repos","events_url":"https://api.github.com/users/Dunbaratu/events{/privacy}","received_events_url":"https://api.github.com/users/Dunbaratu/received_events","type":"User","site_admin":false},"labels":[{"url":"https://api.github.com/repos/KSP-KOS/KOS/labels/refactor","name":"refactor","color":"009800"}],"state":"open","locked":false,"assignee":null,"milestone":{"url":"https://api.github.com/repos/KSP-KOS/KOS/milestones/4","html_url":"https://github.com/KSP-KOS/KOS/milestones/On%20Deck%20new%20features","labels_url":"https://api.github.com/repos/KSP-KOS/KOS/milestones/4/labels","id":831577,"number":4,"title":"On Deck new features","description":"These are the new features that are ready to pick up and work on.","creator":{"login":"erendrake","id":486486,"avatar_url":"https://avatars.githubusercontent.com/u/486486?v=3","gravatar_id":"","url":"https://api.github.com/users/erendrake","html_url":"https://github.com/erendrake","followers_url":"https://api.github.com/users/erendrake/followers","following_url":"https://api.github.com/users/erendrake/following{/other_user}","gists_url":"https://api.github.com/users/erendrake/gists{/gist_id}","starred_url":"https://api.github.com/users/erendrake/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/erendrake/subscriptions","organizations_url":"https://api.github.com/users/erendrake/orgs","repos_url":"https://api.github.com/users/erendrake/repos","events_url":"https://api.github.com/users/erendrake/events{/privacy}","received_events_url":"https://api.github.com/users/erendrake/received_events","type":"User","site_admin":false},"open_issues":6,"closed_issues":5,"state":"open","created_at":"2014-10-19T06:47:01Z","updated_at":"2015-04-14T20:02:01Z","due_on":null,"closed_at":null},"comments":6,"created_at":"2014-10-01T17:04:41Z","updated_at":"2015-04-14T20:30:57Z","closed_at":null,"body":"```\r\nPRINT \"$some string\".\r\nVariable some string is not defined.\r\n```\r\n\r\nThe problem has to do with how the kRISC system flags the difference between \"this string on the stack is a literal\" from \"this string on the stack is a variable's name\".  It does it by prepending a dollarsign to the string.\r\n\r\nThe fix would be to do one of two things:\r\n1 - Use an \"impossible\" character instead of '$' as the flag - use something that a user probably cannot use as a character in a string - like a null char or a control char.  Be careful to use something\r\nfrom 1-byte ascii and not an extension from Unicode because these strings do get saved in packed UTF-8 in some cases.\r\nor \r\n2 - Provide a VarName object that is just a normal string, but wrapped in another class.  Push that on the stack instead of $name and then when popping it off the stack, the system can read its class type to know it's a variable's name.  This may make the ML file packing/unpacking a bit messy (because the ML file can only store primitives, not OOP class info) but there should be a way to do it.\r\n"},"comment":{"url":"https://api.github.com/repos/KSP-KOS/KOS/issues/comments/93050672","html_url":"https://github.com/KSP-KOS/KOS/issues/253#issuecomment-93050672","issue_url":"https://api.github.com/repos/KSP-KOS/KOS/issues/253","id":93050672,"user":{"login":"Dunbaratu","id":5216848,"avatar_url":"https://avatars.githubusercontent.com/u/5216848?v=3","gravatar_id":"","url":"https://api.github.com/users/Dunbaratu","html_url":"https://github.com/Dunbaratu","followers_url":"https://api.github.com/users/Dunbaratu/followers","following_url":"https://api.github.com/users/Dunbaratu/following{/other_user}","gists_url":"https://api.github.com/users/Dunbaratu/gists{/gist_id}","starred_url":"https://api.github.com/users/Dunbaratu/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/Dunbaratu/subscriptions","organizations_url":"https://api.github.com/users/Dunbaratu/orgs","repos_url":"https://api.github.com/users/Dunbaratu/repos","events_url":"https://api.github.com/users/Dunbaratu/events{/privacy}","received_events_url":"https://api.github.com/users/Dunbaratu/received_events","type":"User","site_admin":false},"created_at":"2015-04-14T20:30:57Z","updated_at":"2015-04-14T20:30:57Z","body":"Clever.\r\n\r\nYeah it's definitely got to get fixed.  I figure we make the fix part of the upcoming \"string manipulation\" update, whenever that happens.\r\n"}}