{"action":"created","issue":{"url":"https://api.github.com/repos/15PI-Shell/Shell/issues/24","repository_url":"https://api.github.com/repos/15PI-Shell/Shell","labels_url":"https://api.github.com/repos/15PI-Shell/Shell/issues/24/labels{/name}","comments_url":"https://api.github.com/repos/15PI-Shell/Shell/issues/24/comments","events_url":"https://api.github.com/repos/15PI-Shell/Shell/issues/24/events","html_url":"https://github.com/15PI-Shell/Shell/issues/24","id":165369169,"number":24,"title":"Встроенные программы. Общие правила.","user":{"login":"JuliaRS","id":20324416,"avatar_url":"https://avatars.githubusercontent.com/u/20324416?v=3","gravatar_id":"","url":"https://api.github.com/users/JuliaRS","html_url":"https://github.com/JuliaRS","followers_url":"https://api.github.com/users/JuliaRS/followers","following_url":"https://api.github.com/users/JuliaRS/following{/other_user}","gists_url":"https://api.github.com/users/JuliaRS/gists{/gist_id}","starred_url":"https://api.github.com/users/JuliaRS/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/JuliaRS/subscriptions","organizations_url":"https://api.github.com/users/JuliaRS/orgs","repos_url":"https://api.github.com/users/JuliaRS/repos","events_url":"https://api.github.com/users/JuliaRS/events{/privacy}","received_events_url":"https://api.github.com/users/JuliaRS/received_events","type":"User","site_admin":false},"labels":[],"state":"open","locked":false,"assignee":null,"assignees":[],"milestone":null,"comments":1,"created_at":"2016-07-13T16:50:10Z","updated_at":"2016-07-13T17:02:21Z","closed_at":null,"body":"Builtin prodrams:\r\n1) принимают char* arg , который не нужно изменять внутри программы\r\n2) возвращать char* - который ссылается на память выделенную внутри программы. \r\nНЕЛЬЗЯ: возвращать arg, который ссылается на результат."},"comment":{"url":"https://api.github.com/repos/15PI-Shell/Shell/issues/comments/232419864","html_url":"https://github.com/15PI-Shell/Shell/issues/24#issuecomment-232419864","issue_url":"https://api.github.com/repos/15PI-Shell/Shell/issues/24","id":232419864,"user":{"login":"Acuion","id":6860938,"avatar_url":"https://avatars.githubusercontent.com/u/6860938?v=3","gravatar_id":"","url":"https://api.github.com/users/Acuion","html_url":"https://github.com/Acuion","followers_url":"https://api.github.com/users/Acuion/followers","following_url":"https://api.github.com/users/Acuion/following{/other_user}","gists_url":"https://api.github.com/users/Acuion/gists{/gist_id}","starred_url":"https://api.github.com/users/Acuion/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/Acuion/subscriptions","organizations_url":"https://api.github.com/users/Acuion/orgs","repos_url":"https://api.github.com/users/Acuion/repos","events_url":"https://api.github.com/users/Acuion/events{/privacy}","received_events_url":"https://api.github.com/users/Acuion/received_events","type":"User","site_admin":false},"created_at":"2016-07-13T17:02:21Z","updated_at":"2016-07-13T17:02:21Z","body":"Создание новой программы:\r\n\r\nКаждая программа состоит из .h&.c файла расположенных в папках-фильтрах BuiltinPrograms.\r\nВызываемый интерпретатором обработчик принимает `char*`, возвращает `char*` (смотрите уже реализованные программы для примера)\r\n- -1 в качестве возвращаемого значения означает что программа завершилась в ошибкой\r\n- 0 - нечего возвращать\r\n- любое другое значение - указатель на возвращаемый результат\r\n\r\nДля регистрации программы (чтобы её стало возможно вызывать интерпретатору) необходимо подключить .h программы в BuiltinProgController.h и добавить строку в функцию BPC_Init в BuiltinProgController.c:\r\n`RegisterProgram(`\r\n\r\n- `\"Имя программы, которое будет вызывать интерпретатор\"`,\r\n- `ФункцияОбработчикПрограммы`,\r\n- Тип возвращаемого значения (будет применяться во встроенном языке для соблюдения строгой типизации)\r\n  - `BPC_ReturnsInt` - в возвращаемой строке закодировано целочисленное значение\r\n  - `BPC_ReturnsDouble` - вещественное\r\n  - `BPC_ReturnsString` - строка\r\n  - `BPC_ReturnsNothing` - ничего не возвращает (возвращает 0)\r\n\r\n`);`"}}
{"actor":{"display_login":"Acuion"}}