{"id":17134460,"url":"https://github.com/tranleduy2000/pascalnide","last_synced_at":"2025-04-13T08:55:26.320Z","repository":{"id":65410996,"uuid":"90013488","full_name":"tranleduy2000/pascalnide","owner":"tranleduy2000","description":"Pascal Compiler for Android","archived":false,"fork":false,"pushed_at":"2018-03-18T14:02:31.000Z","size":304068,"stargazers_count":93,"open_issues_count":58,"forks_count":23,"subscribers_count":12,"default_branch":"master","last_synced_at":"2025-04-06T11:09:55.686Z","etag":null,"topics":["android","interpreter","pascal","pascal-compiler","pascal-nide"],"latest_commit_sha":null,"homepage":"","language":"Java","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/tranleduy2000.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2017-05-02T09:10:15.000Z","updated_at":"2025-03-11T03:44:02.000Z","dependencies_parsed_at":"2023-01-23T10:54:59.276Z","dependency_job_id":null,"html_url":"https://github.com/tranleduy2000/pascalnide","commit_stats":null,"previous_names":[],"tags_count":20,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tranleduy2000%2Fpascalnide","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tranleduy2000%2Fpascalnide/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tranleduy2000%2Fpascalnide/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tranleduy2000%2Fpascalnide/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/tranleduy2000","download_url":"https://codeload.github.com/tranleduy2000/pascalnide/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":248688544,"owners_count":21145763,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["android","interpreter","pascal","pascal-compiler","pascal-nide"],"created_at":"2024-10-14T19:44:53.505Z","updated_at":"2025-04-13T08:55:26.298Z","avatar_url":"https://github.com/tranleduy2000.png","language":"Java","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Pascal NIDE - Pascal Compiler for Android\r\n\r\n![Wall](art/wall2.png)\r\n\r\nSee app on Google Play Store\r\n\r\n\u003ca href=\"https://play.google.com/store/apps/details?id=com.duy.pascal.compiler\"\u003e\r\n\u003cimg src=\"https://play.google.com/intl/en_us/badges/images/generic/en_badge_web_generic.png\" width = 200/\u003e\r\n\u003c/a\u003e\r\n\r\n## Overview\r\n\r\nThe application is a Pascal interpreter on Android. This application is confusing for everyone to learn Pascal on the mobile without a computer, so that we can practice anytime, anywhere.\r\n\r\nIf you want to translate this app, please visit this link http://osewnui.oneskyapp.com/collaboration/project/272800\r\n\r\n## The main features of the IDE:\r\n\r\n  1. Compile Pascal programs and run them without Internet.\r\n  2. Report error when compiling\r\n  3. Powerful editor with many smart features: \r\n\t    * File menu: create a new program file, open, save,automatically save file\r\n\t    * Menu edit: Undo, redo, copy, paste.\r\n\t    * Auto suggest: Display a small popup window that suggests words that coincide with the word being typed\r\n\t    * Auto format: automatically reformat the code for easier viewing.\r\n\t    * Find / Find and replace: Regular Expression support.\r\n\t    * Goto line: Move the cursor to a line.\r\n\t    * Highlight code: highlight the keywords.\r\n\t    * Code style: many interface for the editor.\r\n\t    * Font size, font, word wrap.\r\n  4. Support library Android (Sensor, battery, record audio, camera...)\r\n  5. Support Java in Pascal\r\n  6. Auto fix parsing error \r\n        * declare type\r\n        * declare procedure\r\n        * declare constant\r\n        * declare function\r\n        * declare variable\r\n        * Fix wrong type\r\n        * Fix missing token\r\n        * Fix group exception\r\n        * Change constant to variable\r\n        * Fix missing begin end\r\n        * Change type of constant\r\n        * Change type of variable\r\n        * Fix missing dot token\r\n\r\n## Features that the interpreter is missing\r\n\r\n- Exceptions\r\n- Variant types\r\n- goto, label\r\n\t\r\n## Libraries supported for Android\r\n\r\n- The **aTTSpeech** library converts text to speech (requires TextToSpeech). See example `text_to_speech.pas`\r\n- The **aRecognition** library converts speech to text (requires Google Voice). See example `speech_to_text.pas`.\r\n- The **aVibrate** library supports vibration control. You see example `vibrate.pas`\r\n- The **aSensor** library supports processing of Android sensors (light, acceleration, ...). See `accelerometer_sensor.pas` for accelerometer sensor example\r\n- The **aNotify** library helps display notifications in the status bar. See the example `notify.pas`\r\n- The **aClipboard** library works with the clipboard in Android. See the `clipboard.pas` example\r\n- The **aBattery** library retrieves the battery information of the device. See `battery.pas` example\r\n- The **aMedia** library Provides classes that manage various media interfaces in audio and video. See [Wiki](wiki/library_document/aMedia_library.md)\r\n- The **aTone** library provides API to play DTMF tones (ITU-T Recommendation Q.23). See [Wiki](wiki/library_document/aTone_library.md)\r\n- The **aDilaog** library provides API to show some dialog. See [Wiki](wiki/library_document/aAialog_library.md)\r\n\r\n### Java under Pascal - JPascal\r\n\r\nPascal N-IDE allows write program with objects class of ``Java``, which seems crazy :), but it is possible. I reprogrammed a whole platform. Therefore, you can completely use the ``class`` of ``Java`` (such as ``java.util.ArrayList`` or ``java.net.Socket`` to program Socket). That's great, isn't it?.\r\n\r\nFor more information, please read the ``java_under_pascal.md`` wiki for details.\r\n[Link instruction](wiki/java_under_pascal/create_new_object.md)\r\n\r\nHere is an example of using ``Socket``\r\n\r\n```pascal\r\nvar\r\n    sk: java_net_Socket;\r\n    ipAddress: string;\r\n    Port: integer;\r\n\r\nbegin\r\n    ipaddress := '192.168.1.1';\r\n    port := 80;\r\n\r\n    {Socket sk = new Socket(ipAddress, port)}\r\n    New(sk, ipAddress, port);\r\n\r\n    writeln(sk);\r\n    writeln(sk.isConnected());\r\nend.\r\n```\r\n\r\nor ``ArrayList`` in ``Java``\r\n\r\n```pascal\r\nvar\r\n    list: java_util_ArrayList;\r\n    i: integer;\r\nbegin\r\n    new(list);\r\n\r\n    for i := 1 to 10 do\r\n        list.add(i);\r\n\r\n    for i := 1 to 10 do\r\n        writeln(list.get(i));\r\n\r\nend.\r\n```\r\n\r\n## How to contribute\r\nAll contributions are welcome, include code, documentation, suggestions, bug reports, ... . Use github pull request feature or email me. Many thanks for your help\r\nTo help translate this app, please visit http://osewnui.oneskyapp.com/collaboration/project?id=272800\r\n\r\n## Tutorials\r\n\r\n1. [Google Voice](wiki/tutorials/vi/google_voice/google_voice.md)\r\n2. [Scan Barcode/QR code](wiki/tutorials/vi/google_voice/scan_bar_code.md)\r\n3. [Text To Speech](wiki/tutorials/vi/google_voice/text_to_speech.md)\r\n4. [Generate Tone DFMT](wiki/tutorials/vi/google_voice/how_to_make_dtmf_tone.md)\r\n5. [RGB Color](wiki/tutorials/vi/color/color.md)\r\n\r\nSee in https://pascalnide.wordpress.com/\r\n  1. \u003ca href=\"https://pascalnide.wordpress.com/2017/05/01/tao-ung-dung-giao-tiep-bang-giong-noi-voi-pascal-n-ide/\"\u003eHow to create communication application by voice with Pascal N-IDE\u003e\u003c/a\u003e\r\n\r\nIf you want to help me write a tutorial, please email to me.\r\n\r\n## License\r\n\tThe code in this repository is licensed under the Apache License, Version 2.0 (the \"License\");\r\n\tyou may not use this file except in compliance with the License.\r\n\tYou may obtain a copy of the License at\r\n\r\n\t   http://www.apache.org/licenses/LICENSE-2.0\r\n\r\n\tUnless required by applicable law or agreed to in writing, software\r\n\tdistributed under the License is distributed on an \"AS IS\" BASIS,\r\n\tWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n\tSee the License for the specific language governing permissions and\r\n\tlimitations under the License.\r\n**NOTE**: This software depends on other packages that may be licensed under different open source licenses.\r\n\r\n## Developer\r\n Trần Lê Duy\r\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ftranleduy2000%2Fpascalnide","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Ftranleduy2000%2Fpascalnide","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ftranleduy2000%2Fpascalnide/lists"}