3. CHAPTER
FIVE
RESOURCES
In this section you will find resources about the language
105.1 Ring Language Website
For news about the language check the website
http://ring-lang.net
http://ring-lang.sf.net
105.2 Ring Group
For questions use the Ring Group (English)
https://groups.google.com/forum/#!forum/ring-lang
105.3 Contact the Authors
Name : Eng. Mahmoud Samir Fayed
Country : Egypt
Email : msfclipper@yahoo.com
Facebook : https://facebook.com/mahmoudfayed1986
LinkedIn : https://sa.linkedin.com/in/mahmoudfayed1986
Name : Dr. Atif M. Alamri
Country : Saudi Arabia
Email : atif@ksu.edu.sa
LinkedIn : https://sa.linkedin.com/in/dr-atif-alamri-8b341747
Ring Team : http://ring-lang.sourceforge.net/team.html
1894
4. INDEX
3D Cube and Texture
Using RingOpenGL and RingAllegro for 3D Graph-
ics, 592
Access List Items by String Index
Lists, 223
Access Objects Using Braces
Object Oriented Programming, 303
Access String Letters
Strings, 227
Accessing the class attributes from braces inside class
methods
Scope Rules, 740
Add Items
Lists, 217
addattribute()
Reflection and Meta-programming, 331
AddDays()
Date and Time, 235
Adding code to the generated code
Code Generator, 837
Adding Hyperlink to QLabel
Desktop and Mobile Development, 643
addmethod()
Reflection and Meta-programming, 331
Analog Clock
Applications developed in little hours, 6
Animate Class
Game Engine for 2D Games, 495
Animate Events
Game Engine for 2D Games, 506
Animation
Game Engine for 2D Games, 500
Animation and Functions
Game Engine for 2D Games, 501
Anonymous and Nested Functions
Functional Programming, 316
Application Class
Web Development (CGI Library), 449
Applications
How to contribute?, 152
Applications developed in little hours
Analog Clock, 6
Calculator Application, 10
FetchStockData Application, 4
Fifteen Puzzle Game 2, 4
Google API Shortener Application, 5
Innovative, 19
Introduction, 1
Practical, 20
Quotes about Ring, 1
Samples in this book, 13
Squares Puzzle Game, 8
TicTacToe Game, 7
Video-Music-Player Application, 9
Werdy Application, 12
Windows StartUp Manager Application, 11
apppath()
Stdlib Functions, 338
Arithmetic Operators
Operators, 183
Ascii()
Data Type, 243
Assert()
Eval() and Debugging, 269
Assignment Operators
Operators, 184
attributes()
Reflection and Meta-programming, 328
Better Call Command
What is new in Ring 1.2?, 130
Better Code Generator for Extensions
What is new in Ring 1.1?, 140
What is new in Ring 1.5?, 81
Better Documentation
What is new in Ring 1.1?, 140
What is new in Ring 1.7?, 42
Better Documentation Generator for Extensions
What is new in Ring 1.5?, 82
Better Functions
What is new in Ring 1.2?, 127
Better Loop|Exit Command
What is new in Ring 1.3?, 121
Better Natural Language Programming Support
What is new in Ring 1.1?, 132
1895
5. Ring Documentation, Release 1.7
Better Objects Library
What is new in Ring 1.5?, 68
Better Quality
What is new in Ring 1.2?, 130
What is new in Ring 1.5?, 90
Better Ring For Android
What is new in Ring 1.6?, 47
Better Ring Notepad
What is new in Ring 1.2?, 127
What is new in Ring 1.3?, 117
What is new in Ring 1.5?, 59
What is new in Ring 1.6?, 50
What is new in Ring 1.7?, 41
Better Ring VM
What is new in Ring 1.7?, 42
Better Ring2EXE
What is new in Ring 1.7?, 42
Better RingQt
What is new in Ring 1.2?, 127
What is new in Ring 1.3?, 113
What is new in Ring 1.4?, 108
What is new in Ring 1.5?, 66
What is new in Ring 1.6?, 52
What is new in Ring 1.7?, 41
Better RingREPL
What is new in Ring 1.6?, 53
Better RingVM
What is new in Ring 1.6?, 53
Better RingZip
What is new in Ring 1.7?, 42
Better Scripts for building Ring
What is new in Ring 1.6?, 49
Better StdLib
What is new in Ring 1.3?, 121
What is new in Ring 1.4?, 106
What is new in Ring 1.5?, 62
What is new in Ring 1.6?, 53
Better Trace Library
What is new in Ring 1.7?, 40
Better WebLib
What is new in Ring 1.4?, 106
What is new in Ring 1.5?, 63
binarydigits()
Stdlib Functions, 347
Bitwise Operators
Operators, 184
BraceError() Method
Natural Language Programming, 391
BraceExprEval Method
Natural Language Programming, 390
BraceStart and BraceEnd Methods
Natural Language Programming, 389
Branching
Control Structures, 186
Control Structures - Second Style, 193
Control Structures - Third Style, 196
BreakPoint
The Trace Library and the Interactive Debugger, 815
Building From Source Code
Building using CMake, 150
Building using Fedora Linux, 146
Building using MacOS X, 148
Building using Microsoft Windows, 142
Building using Ubuntu Linux, 144
Introduction, 141
Building Games For Android
Building the project, 542
Download Requirements and Update the Android
SDK, 541
Introduction, 540
Project Folder, 541
Building RingQt Applications for Mobile
Comments about developing for Android using
RingQt, 719
Download Requirements, 717
Install Qt for Android, 717
Introduction, 716
Update the Android SDK, 717
Using Ring2EXE, 720
Building standalone console application
Distributing Ring Application using Ring2EXE, 784
Building the Cards Game for Mobile using RingQt
Distributing Ring Application using Ring2EXE, 786
Building the Form Designer for Mobile using RingQt
Distributing Ring Application using Ring2EXE, 788
Building the project
Building Games For Android, 542
Building the Weight History Application for Mobile using
RingQt
Distributing Ring Application using Ring2EXE, 787
Building using CMake
Building From Source Code, 150
Building using Fedora Linux
Building From Source Code, 146
Building using MacOS X
Building From Source Code, 148
Building using Microsoft Windows
Building From Source Code, 142
Building using Ubuntu Linux
Building From Source Code, 144
Calculator Application
Applications developed in little hours, 10
What is new in Ring 1.5?, 58
Call Functions
Functions - First Style, 203
Functions - Second Style, 207
Functions - Third Style, 211
Index 1896
6. Ring Documentation, Release 1.7
callgc()
Low Level Functions, 792
Calling a function sharing the name with a method in the
current class
Scope Rules for Functions and Methods, 751
Can I connect to dbase/harbour database?
Frequently Asked Questions, 880
Can Ring work on Windows XP?
Frequently Asked Questions, 882
capitalized()
Stdlib Functions, 341
cfunctions()
Reflection and Meta-programming, 321
CGI Support
Command Line Options, 779
Change Focus
Desktop and Mobile Development, 678
Change Language Keywords
Syntax Flexibility, 753
Change Language Operators
Syntax Flexibility, 754
Change the ’=’ operator to ’is’
Natural Language Programming, 387
Change the Ring Keyword ’And’
Natural Language Programming, 385
Change the Ring Operator ’+’
Natural Language Programming, 386
Change: Basic Extensions are separated from RingVM
What is new in Ring 1.4?, 101
changestring()
Stdlib Functions, 350
Char()
Data Type, 243
ChDir() Function
System Functions, 265
Check Character
Data Type, 238
Check Data Type
Data Type, 237
Check Parameters Count
Extension, 824
Check Parameters Type
Extension, 825
Classes and Objects
Object Oriented Programming, 301
Classes and their Methods to use the default events
Desktop and Mobile Development, 708
classes()
Reflection and Meta-programming, 325
classname()
Reflection and Meta-programming, 327
Clean Natural Code
Natural Language Programming, 392
Clearerr()
Files, 255
Client Example
RingLibuv, 485
Client Example - Using Classes
RingLibuv, 488
clock()
Date and Time, 233
Close Window Event
RingLibSDL, 479
ClosPerSecond()
Date and Time, 233
Code Generator
Adding code to the generated code, 837
Comments in configuration file, 839
Configuration file, 835
Configuration file for the Allegro library, 840
Configuration Files Examples, 853
Constants Type, 840
Defining Constants, 838
Determine Structure Members Types, 838
Enum and Numbers, 839
Executing code during code generation, 839
Filtering using Expressions, 839
function prototype, 835
Introduction, 834
Prefix for Functions Names, 837
Qt configuration file, 844
Register New Functions, 838
Threads Support, 842
Using configuration file that wrap C++ library, 844
Using the tool, 835
Wrap structures, 837
Wrapping C++ Classes, 843
CodeEditor Class
RingQt Classes Reference, 900
Command Line Options
CGI Support, 779
Generate Object File, 780
Introduction, 765
No Run, 779
Performance, 779
Printing Final Intermediate Code, 774
Printing Instruction Operation Code, 779
Printing Intermediate Code, 772
Printing Rules, 768
Printing Tokens, 766
Comments about developing for Android using RingQt
Building RingQt Applications for Mobile, 719
Comments about evaluation
Control Structures - First Style, 191
Comments in configuration file
Code Generator, 839
Compact Syntax
Language Design, 30
Index 1897
7. Ring Documentation, Release 1.7
Compiler and Virtual Machine (VM)
How to contribute?, 152
Compiler Errors
Reference, 889
Composition
Object Oriented Programming, 304
Configuration file
Code Generator, 835
Configuration file for the Allegro library
Code Generator, 840
Configuration Files Examples
Code Generator, 853
Configure the Apache web server
Web Development (CGI Library), 401
Conflict between Class Attributes and Local Variables
Scope Rules, 737
Conflict between Global Variables and Class Attributes
Frequently Asked Questions, 868
Scope Rules, 736
Conflict between self inside braces and self in the class
region
Scope Rules, 743
Constants Type
Code Generator, 840
Constructor methods in Ring
Frequently Asked Questions, 864
Contact the Autor
Resources, 1894
Context Menu
Desktop and Mobile Development, 625
Control Structures
Branching, 186
Looping, 197
Control Structures - First Style
Comments about evaluation, 191
Do Again Loop, 189
Exit, 189
Exit from two loops, 189
Exit/Loop inside sub functions, 190
For In Loop, 188
for in to modify lists, 188
For Loop, 187
Introduction, 185
Loop Command, 190
Looping, 187
Short-circuit evaluation, 190
Step Option, 188
Switch Statement, 186
While Loop, 187
Control Structures - Second Style
Branching, 193
Exceptions, 195
For In Loop, 195
For Loop, 194
If Statement, 193
Introduction, 192
Looping, 194
Switch Statement, 193
Control Structures - Third Style
Branching, 196
Exceptions, 199
For In Loop, 199
For Loop, 198
If Statement, 196
Introduction, 195
Switch Statement, 196
While Loop, 197
Conversion
Data Type, 242
Conversion Class
Stdlib Classes, 372
Convert between Numbers and Bytes
What is new in Ring 1.4?, 105
Convert Letters Case
Strings, 227
Cookies
Web Development (CGI Library), 413
Copy Lists
Lists, 221
Copy()
Strings, 229
Could you explain the output of the StrCmp() function?
Frequently Asked Questions, 871
Create Database
MySQL Functions, 284
Create Executable File
Getting Started - First Style, 153
Getting Started - Second Style, 156
Getting Started - Third Style, 158
Create Lists
Lists, 217
Create Multi Dimension Array Using List and Recursion
Lists, 224
Create Table and Insert Data
MySQL Functions, 285
Create Window
RingLibSDL, 476
Create Zip File
RingZip, 459
Creating a Class for each Window in GUI applications
Scope Rules, 742
Creating Menubar
Desktop and Mobile Development, 622
Creating more than one window
Desktop and Mobile Development, 661
Creating Reports using the WebLib and the GUILib
Desktop and Mobile Development, 713
Creating StatusBar
Index 1898
8. Ring Documentation, Release 1.7
Desktop and Mobile Development, 627
Creating the Game Window
Game Engine for 2D Games, 495
Creating the Qt resource file using Folder2qrc
Distributing Ring Application using Ring2EXE, 790
Creating Toolbar
Desktop and Mobile Development, 626
Creating Windows Installer
Distributing Ring Application, 782
CRUD Example using MVC
Web Development (CGI Library), 435
CurrentDir() Function
System Functions, 265
Data Type
Ascii(), 243
Char(), 243
Check Character, 238
Check Data Type, 237
Conversion, 242
Dec(), 243
Hex(), 243
Hex2str(), 244
Introduction, 236
IsAlNum(), 239
IsAlpha(), 239
IsCntrl(), 239
IsDigit(), 240
IsGraph(), 240
IsList(), 238
IsLower(), 240
IsNULL(), 238
IsNumber(), 237
IsPrint(), 240
IsPunct(), 241
IsSpace(), 241
IsString(), 237
IsUpper(), 241
IsXdigit(), 241
Number(), 242
Str2Hex(), 244
String(), 242
Type(), 238
Database, ModelBase & ControllerBase classes
Web Development (CGI Library), 443
DataType Class
Stdlib Classes, 371
Date and Time
AddDays(), 235
clock(), 233
ClosPerSecond(), 233
Date(), 233
DiffDays(), 235
EpochTime(), 235
Introduction, 232
Time(), 233
TimeList(), 234
Date()
Date and Time, 233
DateTime Class
Stdlib Classes, 366
dayofweek()
Stdlib Functions, 348
Debug Class
Stdlib Classes, 370
Dec()
Data Type, 243
Decimals()
Mathematical Functions, 248
Declarative Programming
Declarative programming on the top of Object-
Oriented, 381
executing code after the end of object access, 381
Introduction, 377
More Beatiful Code, 382
Objects inside lists, 378
Return object by reference, 379
Declarative programming on the top of Object-Oriented
Declarative Programming, 381
Declare parameters
Functions - First Style, 204
Functions - Second Style, 208
Functions - Third Style, 212
Decrypt()
Security and Internet Functions, 298
Deep Copy
Variables, 181
Define Declarative Languages
Language Design, 33
Define Functions
Functions - First Style, 203
Functions - Second Style, 207
Functions - Third Style, 211
Define Natural Statements
Language Design, 31
Defining Commands
Using the Natural Library, 396
Defining commands using classes
Using the Natural Library, 399
Defining Constants
Code Generator, 838
Defining Variables and Variables Access
Scope Rules, 734
Delete Item From List
Lists, 218
Demo Programs
Introduction, 269
Language Shell, 270
Index 1899
9. Ring Documentation, Release 1.7
Main Menu, 270
The Cards Game, 702
Designed for a clear goal
Language Design, 28
Desktop and Mobile Development
Adding Hyperlink to QLabel, 643
Change Focus, 678
Classes and their Methods to use the default events,
708
Context Menu, 625
Creating Menubar, 622
Creating more than one window, 661
Creating Reports using the WebLib and the GUILib,
713
Creating StatusBar, 627
Creating Toolbar, 626
Dialog Functions, 668
Display Image using QLabel, 647
Display Scaled Image using QLabel, 656
Drawing using QPainter, 658
Dynamic Objects, 682
Inheritance from GUI Classes, 674
KeyPress and Mouse Move Events, 668
Menubar and StyleSheet Example, 648
Methods to use Events with Events Filter, 711
Movable Label Example, 664
Moving Objects using the Mouse, 670
New Classes names - Index Start from 1, 713
Notepad Application, 687
Other Widgets Events, 652
Playing Sound, 662
Printing using QPrinter, 660
QLineEdit Events and QMessageBox, 650
QMessagebox Example, 665
QVideoWidget and QMediaPlayer, 644
Regular Expressions, 679
RingQt Classes and their Qt Documentation, 713
Rotate Text, 676
Simple Client and Server Example, 680
The Cards Game, 702
The Difference between Qt and RingQt, 712
The First GUI Application, 612
Using Layout, 613
Using QCheckBox, 640
Using QComboBox Class, 621
Using QDateEdit, 635
Using QDesktopWidget Class, 675
Using QDial, 636
Using QDockWidget, 628
Using QFrame, 645
Using QInputDialog Class, 666
Using qLCDNumber, 663
Using QProgressBar, 632
Using QProgressBar and Timer, 655
Using QRadioButton and QButtonGroup, 641
Using QSlider, 633
Using QSpinBox, 633
Using QTableWidget, 631
Using QTabWidget, 629
Using QTreeView and QFileSystemModel, 619
Using QTreeWidget and QTreeWidgetItem, 620
Using QWebView, 639
Using the QColorDialog Class, 662
Using the QFileDialog Class, 657
Using the QListWidget Class, 616
Using the QTextEdit Class, 615
Using the QTimer Class, 654
Weight History Application, 683
Determine Structure Members Types
Code Generator, 838
Dialog Functions
Desktop and Mobile Development, 668
DiffDays()
Date and Time, 235
Dir()
Files, 251
direxists()
Stdlib Functions, 350
Disable BreakPoints
The Trace Library and the Interactive Debugger, 815
Display Error Message
Extension, 825
Display Image
RingLibSDL, 476
Display Image using QLabel
Desktop and Mobile Development, 647
Display PNG Images
RingLibSDL, 477
Display Scaled Image using QLabel
Desktop and Mobile Development, 656
Display Transparent Images
RingLibSDL, 478
Display Warnings Option
What is new in Ring 1.2?, 130
Distributing Applications and Games for Mobile
Distributing Ring Application, 782
Distributing Applications for Microsoft Windows
Distributing Ring Application, 781
Distributing Applications for Mobile using RingQt
Distributing Ring Application using Ring2EXE, 786
Distributing Ring Application
Creating Windows Installer, 782
Distributing Applications and Games for Mobile,
782
Distributing Applications for Microsoft Windows,
781
Introduction, 780
Protecting the Source Code, 781
Index 1900
10. Ring Documentation, Release 1.7
Using C/C++ Compiler and Linker, 782
Distributing Ring Application using Ring2EXE
Building standalone console application, 784
Building the Cards Game for Mobile using RingQt,
786
Building the Form Designer for Mobile using
RingQt, 788
Building the Weight History Application for Mobile
using RingQt, 787
Creating the Qt resource file using Folder2qrc, 790
Distributing Applications for Mobile using RingQt,
786
Distributing RingAllegro Applications, 785
Example, 783
How Ring2EXE works?, 783
Important Information about Ring2EXE, 790
Introduction, 782
Options, 784
Using Ring2EXE, 783
Distributing RingAllegro Applications
Distributing Ring Application using Ring2EXE, 785
Do Again Loop
Control Structures - First Style, 189
Documentation
How to contribute?, 151
Download Requirements
Building RingQt Applications for Mobile, 717
Download Requirements and Update the Android SDK
Building Games For Android, 541
Download()
Security and Internet Functions, 299
Draw Rectangle
RingLibSDL, 477
Drawing Text
Game Engine for 2D Games, 496
Drawing using QPainter
Desktop and Mobile Development, 658
Drawing using RingOpenGL
Using RingOpenGL and RingFreeGLUT for 3D
Graphics, 546
Drawing, Animation and Input
Graphics and Game Programming, 462
Dynamic Attributes
Object Oriented Programming, 308
Dynamic Objects
Desktop and Mobile Development, 682
Dynamic Typing
Variables, 181
Editors Support
How to contribute?, 152
Embedding Ring in Ring
Embedding Ring in Ring, 817
Embedding Ring in Ring without sharing the State,
818
ring_state_new() and ring_state_mainfile(), 820
ring_state_setvar(), 819
Serial Execution of Programs, 818
Embedding Ring in Ring without sharing the State
Embedding Ring in Ring, 818
What is new in Ring 1.3?, 123
Embedding Ring Language in C/C++ Programs
Introduction, 831
Ring State, 832
Ring State Functions, 832
Ring State Variables, 833
Employee Application
What is new in Ring 1.6?, 46
Encourage Organization
Language Design, 30
Encrypt()
Security and Internet Functions, 297
endswith()
Stdlib Functions, 344
Entering Items
Form Designer, 732
Enum and Numbers
Code Generator, 839
Environment Errors
Reference, 891
EpochTime()
Date and Time, 235
Stdlib Functions, 352
Equality of functions
Functional Programming, 317
Eval()
Eval() and Debugging, 267
Eval() and Debugging
Assert(), 269
Eval(), 267
Introduction, 266
Raise(), 268
Try/Carch/Done, 267
evenorodd()
Stdlib Functions, 346
Events Code
Form Designer, 728
Example
Distributing Ring Application using Ring2EXE, 783
Files, 257
Mathematical Functions, 245
Natural Language Programming, 384
Objects Library for RingQt Application, 721
RingMurmurHash Functions Reference, 1087
Security and Internet Functions, 298
System Functions, 262
The Type Hints Library, 763
Index 1901