Skip to content

tranleduy2000/pascalnide

Repository files navigation

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