All Projects → tranleduy2000 → Pascalnide

tranleduy2000 / Pascalnide

Pascal Compiler for Android

Programming Languages

java
68154 projects - #9 most used programming language
pascal
1382 projects

Projects that are alternatives of or similar to Pascalnide

O
Language for code-golf with a focus on unreadability
Stars: ✭ 46 (-26.98%)
Mutual labels:  interpreter
Mir
A light-weight JIT compiler based on MIR (Medium Internal Representation)
Stars: ✭ 1,075 (+1606.35%)
Mutual labels:  interpreter
Tiny Lisp
A tiny lisp compiler written in JS
Stars: ✭ 58 (-7.94%)
Mutual labels:  interpreter
Hermes
C-like scripting language
Stars: ✭ 48 (-23.81%)
Mutual labels:  interpreter
Wasmjit
Small Embeddable WebAssembly Runtime
Stars: ✭ 1,063 (+1587.3%)
Mutual labels:  interpreter
Lily
This repository has moved: https://gitlab.com/FascinatedBox/lily
Stars: ✭ 1,081 (+1615.87%)
Mutual labels:  interpreter
Winter
Haskell port of the WebAssembly OCaml reference interpreter
Stars: ✭ 42 (-33.33%)
Mutual labels:  interpreter
Sablejs
🏖️ The safer and faster ECMA5.1 interpreter written by JavaScript
Stars: ✭ 60 (-4.76%)
Mutual labels:  interpreter
Feel Scala
FEEL parser and interpreter written in Scala
Stars: ✭ 52 (-17.46%)
Mutual labels:  interpreter
Reoscript
JavaScript-like script language engine for .NET Application. Easy to plug in .NET Application and making API extension for script. Enhanced syntax and features are also available such as lambda expression, call setTimeout with arguments, etc...
Stars: ✭ 57 (-9.52%)
Mutual labels:  interpreter
Cymbal
Yet another Rust implementation of the Monkey language from "Writing an Interpreter in Go" and "Writing a Compiler in Go"
Stars: ✭ 49 (-22.22%)
Mutual labels:  interpreter
Pythonvm Rust
An incomplete stackless interpreter of Python bytecode, written in Rust.
Stars: ✭ 50 (-20.63%)
Mutual labels:  interpreter
Yasl
Bytecode Interpreter for Yet Another Scripting Language (YASL).
Stars: ✭ 55 (-12.7%)
Mutual labels:  interpreter
Algorithmmap
建立你的算法地图:如何高效学习算法;算法工程师:从小白到专家
Stars: ✭ 47 (-25.4%)
Mutual labels:  interpreter
Zepto
A schemy Lisp backed by Haskell
Stars: ✭ 60 (-4.76%)
Mutual labels:  interpreter
U6a
Implementation of Unlambda, an esoteric programming language.
Stars: ✭ 46 (-26.98%)
Mutual labels:  interpreter
Tablam
The practical relational programing language for data-oriented applications
Stars: ✭ 55 (-12.7%)
Mutual labels:  interpreter
Birlscript
Interpretador da linguagem BirlScript
Stars: ✭ 62 (-1.59%)
Mutual labels:  interpreter
Flashforth
FlashForth development
Stars: ✭ 60 (-4.76%)
Mutual labels:  interpreter
Littlelang
A little language interpreter written in Go
Stars: ✭ 56 (-11.11%)
Mutual labels:  interpreter

Pascal NIDE - Pascal Compiler for Android

Wall

See app on Google Play Store

Overview

The 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.

If you want to translate this app, please visit this link http://osewnui.oneskyapp.com/collaboration/project/272800

The main features of the IDE:

  1. Compile Pascal programs and run them without Internet.
  2. Report error when compiling
  3. Powerful editor with many smart features:
    • File menu: create a new program file, open, save,automatically save file
    • Menu edit: Undo, redo, copy, paste.
    • Auto suggest: Display a small popup window that suggests words that coincide with the word being typed
    • Auto format: automatically reformat the code for easier viewing.
    • Find / Find and replace: Regular Expression support.
    • Goto line: Move the cursor to a line.
    • Highlight code: highlight the keywords.
    • Code style: many interface for the editor.
    • Font size, font, word wrap.
  4. Support library Android (Sensor, battery, record audio, camera...)
  5. Support Java in Pascal
  6. Auto fix parsing error
    • declare type
    • declare procedure
    • declare constant
    • declare function
    • declare variable
    • Fix wrong type
    • Fix missing token
    • Fix group exception
    • Change constant to variable
    • Fix missing begin end
    • Change type of constant
    • Change type of variable
    • Fix missing dot token

Features that the interpreter is missing

  • Exceptions
  • Variant types
  • goto, label

Libraries supported for Android

  • The aTTSpeech library converts text to speech (requires TextToSpeech). See example text_to_speech.pas
  • The aRecognition library converts speech to text (requires Google Voice). See example speech_to_text.pas.
  • The aVibrate library supports vibration control. You see example vibrate.pas
  • The aSensor library supports processing of Android sensors (light, acceleration, ...). See accelerometer_sensor.pas for accelerometer sensor example
  • The aNotify library helps display notifications in the status bar. See the example notify.pas
  • The aClipboard library works with the clipboard in Android. See the clipboard.pas example
  • The aBattery library retrieves the battery information of the device. See battery.pas example
  • The aMedia library Provides classes that manage various media interfaces in audio and video. See Wiki
  • The aTone library provides API to play DTMF tones (ITU-T Recommendation Q.23). See Wiki
  • The aDilaog library provides API to show some dialog. See Wiki

Java under Pascal - JPascal

Pascal 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?.

For more information, please read the java_under_pascal.md wiki for details. Link instruction

Here is an example of using Socket

var
    sk: java_net_Socket;
    ipAddress: string;
    Port: integer;

begin
    ipaddress := '192.168.1.1';
    port := 80;

    {Socket sk = new Socket(ipAddress, port)}
    New(sk, ipAddress, port);

    writeln(sk);
    writeln(sk.isConnected());
end.

or ArrayList in Java

var
    list: java_util_ArrayList;
    i: integer;
begin
    new(list);

    for i := 1 to 10 do
        list.add(i);

    for i := 1 to 10 do
        writeln(list.get(i));

end.

How to contribute

All contributions are welcome, include code, documentation, suggestions, bug reports, ... . Use github pull request feature or email me. Many thanks for your help To help translate this app, please visit http://osewnui.oneskyapp.com/collaboration/project?id=272800

Tutorials

  1. Google Voice
  2. Scan Barcode/QR code
  3. Text To Speech
  4. Generate Tone DFMT
  5. RGB Color

See in https://pascalnide.wordpress.com/

  1. How to create communication application by voice with Pascal N-IDE>

If you want to help me write a tutorial, please email to me.

License

The code in this repository is licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at

   http://www.apache.org/licenses/LICENSE-2.0

Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.

NOTE: This software depends on other packages that may be licensed under different open source licenses.

Developer

Trần Lê Duy

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].