{ "info": { "author": "jamesalbert", "author_email": "jamesrobertalbert@gmail.com", "bugtrack_url": null, "classifiers": [ "Development Status :: 3 - Alpha", "Intended Audience :: Developers", "License :: OSI Approved :: MIT License", "Programming Language :: Python :: 3.6", "Topic :: Software Development :: Build Tools" ], "description": "# HolyC-for-Linux\nrun HolyC on Linux secularly\n\n[![Build Status](http://ec2-54-162-194-49.compute-1.amazonaws.com/job/holyc-for-linux/job/master/badge/icon)](http://ec2-54-162-194-49.compute-1.amazonaws.com/job/holyc-for-linux/job/master/)\n[![PyPI version](https://badge.fury.io/py/secularize.svg)](https://badge.fury.io/py/secularize)\n\n#### Disclaimer\n\nThis tool is in super-hella-mega alpha stage. If you use this, you will die. Or worse, your current operating system will be replaced with TempleOS. I've only tested this on `3.7-dev`.\n\n## Install\n\n```\npip install secularize\n```\n\n## Translate\n\nThe primary use is to translate holyc to c. Do this with:\n`secularize examples/test.hc`\n\nthis turns `examples/test.hc`\n```c\nF64 *s = 3;\n\nU0 test(I16 a, U8 b, F64 c) {\n Print(\"hello\");\n}\n\nF64 pest(I8 d) {\n Print(\"nothing\");\n}\n\nPrint(\"%s %s\", \"hello\", \"world\");\nI64 b = 2.000;\n```\n\ninto `examples/test.c`\n```c\nvoid test(short a, unsigned char b, double c)\n{\n printf(\"hello\");\n}\n\ndouble pest(char d)\n{\n printf(\"nothing\");\n}\n\nint main()\n{\n double* s = 3;\n printf(\"%s %s\", \"hello\", \"world\");\n long b = 2.0;\n}\n```\n\n## Debugging\n\nTo add a feature, it's useful to get the AST of an expected target. To do this, write the C file you're trying to translate to, then run `secularize dump-ast name-of-file.c`. This will pretty print the AST to json.\n\n```sh\n$ cat examples/math.c\nint main()\n{\n long a = 3;\n long b = 2;\n}\n\n$ secularize dump-ast examples/math.c\n{\n \"_nodetype\": \"FileAST\",\n \"coord\": null,\n \"ext\": [\n {\n \"_nodetype\": \"FuncDef\",\n \"coord\": \"examples/math.c:1:5\",\n \"decl\": {\n \"_nodetype\": \"Decl\",\n \"name\": \"main\",\n \"quals\": [],\n \"storage\": [],\n \"funcspec\": [],\n \"coord\": \"examples/math.c:1:5\",\n \"type\": {\n \"_nodetype\": \"FuncDecl\",\n \"coord\": \"examples/math.c:1:5\",\n \"type\": {\n \"_nodetype\": \"TypeDecl\",\n \"declname\": \"main\",\n \"quals\": [],\n \"coord\": \"examples/math.c:1:5\",\n \"type\": {\n \"_nodetype\": \"IdentifierType\",\n \"names\": [\n \"int\"\n ],\n \"coord\": \"examples/math.c:1:1\"\n }\n },\n \"args\": null\n },\n \"init\": null,\n \"bitsize\": null\n },\n \"body\": {\n \"_nodetype\": \"Compound\",\n \"coord\": \"examples/math.c:2:1\",\n \"block_items\": [\n {\n \"_nodetype\": \"Decl\",\n \"name\": \"a\",\n \"quals\": [],\n \"storage\": [],\n \"funcspec\": [],\n \"coord\": \"examples/math.c:3:8\",\n \"type\": {\n \"_nodetype\": \"TypeDecl\",\n \"declname\": \"a\",\n \"quals\": [],\n \"coord\": \"examples/math.c:3:8\",\n \"type\": {\n \"_nodetype\": \"IdentifierType\",\n \"names\": [\n \"long\"\n ],\n \"coord\": \"examples/math.c:3:3\"\n }\n },\n \"init\": {\n \"_nodetype\": \"Constant\",\n \"type\": \"int\",\n \"value\": \"3\",\n \"coord\": \"examples/math.c:3:12\"\n },\n \"bitsize\": null\n },\n {\n \"_nodetype\": \"Decl\",\n \"name\": \"b\",\n \"quals\": [],\n \"storage\": [],\n \"funcspec\": [],\n \"coord\": \"examples/math.c:4:8\",\n \"type\": {\n \"_nodetype\": \"TypeDecl\",\n \"declname\": \"b\",\n \"quals\": [],\n \"coord\": \"examples/math.c:4:8\",\n \"type\": {\n \"_nodetype\": \"IdentifierType\",\n \"names\": [\n \"long\"\n ],\n \"coord\": \"examples/math.c:4:3\"\n }\n },\n \"init\": {\n \"_nodetype\": \"Constant\",\n \"type\": \"int\",\n \"value\": \"2\",\n \"coord\": \"examples/math.c:4:12\"\n },\n \"bitsize\": null\n }\n ]\n },\n \"param_decls\": null\n }\n ]\n}\n\n```\n\n## What's Supported\n\n- print statements\n- primitive data types\n- basic functions\n\n## What's Not Supported\n\nEverything else. Deal with it.", "description_content_type": null, "docs_url": null, "download_url": "", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "https://www.github.com/jamesalbert/HolyC-for-Linux", "keywords": "holyc linux terry lord temple mlg", "license": "MIT", "maintainer": "", "maintainer_email": "", "name": "secularize", "package_url": "https://pypi.org/project/secularize/", "platform": "", "project_url": "https://pypi.org/project/secularize/", "project_urls": { "Homepage": "https://www.github.com/jamesalbert/HolyC-for-Linux" }, "release_url": "https://pypi.org/project/secularize/0.0.1.post7/", "requires_dist": null, "requires_python": "", "summary": "run HolyC source on linux", "version": "0.0.1.post7" }, "last_serial": 3470128, "releases": { "0.0.1.post0": [ { "comment_text": "", "digests": { "md5": "5f6f89b7590d28587e8363c31ae0a95d", "sha256": "47ec877d69c9f0a57352959b08611d8b36b9bcd4ea0b8a3e18cb25e0d084992a" }, "downloads": -1, "filename": "secularize-0.0.1.post0.tar.gz", "has_sig": false, "md5_digest": "5f6f89b7590d28587e8363c31ae0a95d", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 6354, "upload_time": "2018-01-07T05:48:58", "url": "https://files.pythonhosted.org/packages/30/9a/086b4fabf09c09f18f6cc4fefca045a49dd9af99eca2cb376f47f1e02171/secularize-0.0.1.post0.tar.gz" } ], "0.0.1.post1": [ { "comment_text": "", "digests": { "md5": "c62c898508f926fe130b850133021277", "sha256": "d626128b41e8de4890b69a4b2c2456a8c97a85828974d1425f08a90ccc8c6697" }, "downloads": -1, "filename": "secularize-0.0.1.post1.tar.gz", "has_sig": false, "md5_digest": "c62c898508f926fe130b850133021277", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 16426, "upload_time": "2018-01-07T05:52:36", "url": "https://files.pythonhosted.org/packages/02/2f/f68ea684abcb3f239d76d65bcbb055e28a902adf6eb64434612e72f35c5f/secularize-0.0.1.post1.tar.gz" } ], "0.0.1.post2": [ { "comment_text": "", "digests": { "md5": "0327fe53e26ff44d33ddeecdca91abd3", "sha256": "f504c322933ec550265b2e988d7c44c085de5c7716430088064fbf859b7b82e2" }, "downloads": -1, "filename": "secularize-0.0.1.post2.tar.gz", "has_sig": false, "md5_digest": "0327fe53e26ff44d33ddeecdca91abd3", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 16427, "upload_time": "2018-01-07T05:59:18", "url": "https://files.pythonhosted.org/packages/dd/ff/8949ea5fa73d2d0e77b95d42832f6c692d96433fb3dd1ddb996acffa434c/secularize-0.0.1.post2.tar.gz" } ], "0.0.1.post3": [ { "comment_text": "", "digests": { "md5": "2fae3b3cdc02e69169f9bfbd1f620449", "sha256": "f1e4e1d6a250d5125436b6e05c04b0c5f02f7de2e7059735b99d0611dc941692" }, "downloads": -1, "filename": "secularize-0.0.1.post3.tar.gz", "has_sig": false, "md5_digest": "2fae3b3cdc02e69169f9bfbd1f620449", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 17965, "upload_time": "2018-01-07T06:04:57", "url": "https://files.pythonhosted.org/packages/b9/ff/53cdf5ebfb99452e34269d33a345b5c34c39373dcff4e64c5e3552c22391/secularize-0.0.1.post3.tar.gz" } ], "0.0.1.post4": [ { "comment_text": "", "digests": { "md5": "fc7ebcf1ef294f099c301129864dbfe1", "sha256": "de20c1701ee4c27a748053923bcf1970af5a897524541069937800a2a3ebfee6" }, "downloads": -1, "filename": "secularize-0.0.1.post4.tar.gz", "has_sig": false, "md5_digest": "fc7ebcf1ef294f099c301129864dbfe1", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 18001, "upload_time": "2018-01-07T06:08:36", "url": "https://files.pythonhosted.org/packages/6e/20/f993ba36acc9175cdeba9fd6ce0ffd9bee177060fe2958920537d86a21df/secularize-0.0.1.post4.tar.gz" } ], "0.0.1.post5": [ { "comment_text": "", "digests": { "md5": "e21ee73e76f382c4bb0705b03d9334d4", "sha256": "2254282d4ca3106170e21434fbc288b3af96f69adb06e89100b45fa37b8eee05" }, "downloads": -1, "filename": "secularize-0.0.1.post5.tar.gz", "has_sig": false, "md5_digest": "e21ee73e76f382c4bb0705b03d9334d4", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 18445, "upload_time": "2018-01-07T08:24:41", "url": "https://files.pythonhosted.org/packages/4b/6d/58c9c368dcf8d995503bb056a7cc26a6f5fb5e15645f45b28d232c8b207a/secularize-0.0.1.post5.tar.gz" } ], "0.0.1.post6": [ { "comment_text": "", "digests": { "md5": "d9c854f22a698fcd3838d60cc89a5da1", "sha256": "af8775bf12b3de71381ae910b7a6b552267ec46671395edfc208c0f76a6124f7" }, "downloads": -1, "filename": "secularize-0.0.1.post6.tar.gz", "has_sig": false, "md5_digest": "d9c854f22a698fcd3838d60cc89a5da1", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 19794, "upload_time": "2018-01-08T02:12:50", "url": "https://files.pythonhosted.org/packages/df/b1/369ace1c480aaaf61e16aa2695a5490108f94b2647f6a4a8620da5ea965b/secularize-0.0.1.post6.tar.gz" } ], "0.0.1.post7": [ { "comment_text": "", "digests": { "md5": "cd8ab49c4936c2b9b4c01fdcf68bd2ee", "sha256": "a3de8c80734850d667104b0288f09c4d22cf2b807211b00099b54e03e77b3967" }, "downloads": -1, "filename": "secularize-0.0.1.post7.tar.gz", "has_sig": false, "md5_digest": "cd8ab49c4936c2b9b4c01fdcf68bd2ee", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 19764, "upload_time": "2018-01-08T05:08:04", "url": "https://files.pythonhosted.org/packages/08/e7/56100f356bd8a1701d5aadb30d016f8c54b57b0d062ce8ae1f89e8cb82e4/secularize-0.0.1.post7.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "cd8ab49c4936c2b9b4c01fdcf68bd2ee", "sha256": "a3de8c80734850d667104b0288f09c4d22cf2b807211b00099b54e03e77b3967" }, "downloads": -1, "filename": "secularize-0.0.1.post7.tar.gz", "has_sig": false, "md5_digest": "cd8ab49c4936c2b9b4c01fdcf68bd2ee", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 19764, "upload_time": "2018-01-08T05:08:04", "url": "https://files.pythonhosted.org/packages/08/e7/56100f356bd8a1701d5aadb30d016f8c54b57b0d062ce8ae1f89e8cb82e4/secularize-0.0.1.post7.tar.gz" } ] }