<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: Hady Eslam</title>
    <description>The latest articles on DEV Community by Hady Eslam (@hady_eslam).</description>
    <link>https://dev.to/hady_eslam</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F97962%2F4de5e9ce-c1d4-4672-a180-03c6f85684a2.jpg</url>
      <title>DEV Community: Hady Eslam</title>
      <link>https://dev.to/hady_eslam</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/hady_eslam"/>
    <language>en</language>
    <item>
      <title>Engine - Yet Another Programming Language</title>
      <dc:creator>Hady Eslam</dc:creator>
      <pubDate>Thu, 25 Jan 2024 18:00:40 +0000</pubDate>
      <link>https://dev.to/hady_eslam/engine-yet-another-programming-language-lbl</link>
      <guid>https://dev.to/hady_eslam/engine-yet-another-programming-language-lbl</guid>
      <description>&lt;p&gt;بسم الله الرحمن الرحيم&lt;br&gt;
اللَّهُمَّ انْفَعْنِي بِمَا عَلَّمْتَنِي، وَعَلِّمْنِي مَا يَنْفَعُنِي، وَزِدْنِي عِلْمًا&lt;/p&gt;

&lt;p&gt;Although there exist many programming languages on earth, This will not weaver my determination from announcing my new programming language ( &lt;code&gt;Engine - The Next Generation Of Programming Languages&lt;/code&gt; ) ✌️&lt;/p&gt;

&lt;p&gt;wanting to create something new and to deepen my knowledge, I have been thinking why not create a new language? with new feature and design?&lt;/p&gt;

&lt;p&gt;&lt;a href="https://github.com/engine-lang/engine"&gt;Engine&lt;/a&gt; is a programming language that is based on &lt;code&gt;Rust&lt;/code&gt; programming language.&lt;/p&gt;
&lt;h2&gt;
  
  
  Introduction
&lt;/h2&gt;

&lt;p&gt;Engine is a new programming language which it's compiler is based on Rust programming language. This has many benefits:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Rust is fast. with memory safty guaranties&lt;/li&gt;
&lt;li&gt;No garbash collection model.&lt;/li&gt;
&lt;li&gt;It actually can be used as

&lt;ul&gt;
&lt;li&gt;Compiler&lt;/li&gt;
&lt;li&gt;Interpreter&lt;/li&gt;
&lt;li&gt;Byte Code Generator (That compile your code into byte code file)&lt;/li&gt;
&lt;li&gt;Byte code executer (Interpreter that execute your code)&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;
  
  
  Installing
&lt;/h2&gt;

&lt;p&gt;First clone the repo&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;git clone git@github.com:engine-lang/engine.git
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Then create engine file&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="nb"&gt;touch &lt;/span&gt;test.en
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;and put this code&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight viml"&gt;&lt;code&gt;&lt;span class="nb"&gt;string&lt;/span&gt; variable_1 &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="s2"&gt;"hello"&lt;/span&gt;
&lt;span class="k"&gt;print&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;variable_1&lt;span class="p"&gt;)&lt;/span&gt;

&lt;span class="nb"&gt;string&lt;/span&gt; variable_2 &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="s2"&gt;", world!!!!"&lt;/span&gt;
&lt;span class="k"&gt;print&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;variable_2&lt;span class="p"&gt;)&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  Run engine as Interpreter
&lt;/h3&gt;

&lt;p&gt;You can run engine as an interpreter on the file by just running&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;cargo run &lt;span class="s2"&gt;"test.en"&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;it should print&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;hello, world!!!!
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  Run engine as a Compiler
&lt;/h3&gt;

&lt;p&gt;You can run engine as a compiler which will generate an executable.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;cargo run &lt;span class="s2"&gt;"test.en"&lt;/span&gt; &lt;span class="nt"&gt;-e&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;it will generate an executable file called &lt;code&gt;test&lt;/code&gt;, and to run it&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;./test
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;it should print&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;hello, world!!!!
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  Generate byte Code
&lt;/h3&gt;

&lt;p&gt;You can generate a byte code like this&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;cargo run &lt;span class="s2"&gt;"test.en"&lt;/span&gt; &lt;span class="nt"&gt;-b&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;it will generate a file called &lt;code&gt;test.en.byte&lt;/code&gt; in this format&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight viml"&gt;&lt;code&gt;&lt;span class="m"&gt;0&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;EngineByteCode&lt;span class="p"&gt;:&lt;/span&gt;v0&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="m"&gt;1&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="m"&gt;0&lt;/span&gt;
&lt;span class="m"&gt;1&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;Assign&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="nb"&gt;string&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="s2"&gt;"temp_stack1_variable_1"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="s2"&gt;"hello"&lt;/span&gt;
&lt;span class="m"&gt;2&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;Assign&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="nb"&gt;string&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="s2"&gt;"stack1_variable_variable_1"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="s2"&gt;""&lt;/span&gt;
&lt;span class="m"&gt;3&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;Convert&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="nb"&gt;string&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="s2"&gt;"stack1_variable_variable_1"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="s2"&gt;"temp_stack1_variable_1"&lt;/span&gt;
&lt;span class="m"&gt;4&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;Print&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="s2"&gt;"stack1_variable_variable_1"&lt;/span&gt;
&lt;span class="m"&gt;5&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;Assign&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="nb"&gt;string&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="s2"&gt;"temp_stack1_variable_2"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="s2"&gt;", world!!!!"&lt;/span&gt;
&lt;span class="m"&gt;6&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;Assign&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="nb"&gt;string&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="s2"&gt;"stack1_variable_variable_2"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="s2"&gt;""&lt;/span&gt;
&lt;span class="m"&gt;7&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;Convert&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="nb"&gt;string&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="s2"&gt;"stack1_variable_variable_2"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="s2"&gt;"temp_stack1_variable_2"&lt;/span&gt;
&lt;span class="m"&gt;8&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;Print&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="s2"&gt;"stack1_variable_variable_2"&lt;/span&gt;
&lt;span class="m"&gt;9&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;End&lt;span class="p"&gt;:&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;you can then use it to your specific cases, or you can run it using engine vm&lt;/p&gt;

&lt;h3&gt;
  
  
  Run engine as VM(Virtual Machine)
&lt;/h3&gt;

&lt;p&gt;To execute the engine byte code file, you can run&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;cargo run &lt;span class="s2"&gt;"test.en.byte"&lt;/span&gt; &lt;span class="nt"&gt;--vm&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;it will interprete the file&lt;/p&gt;

&lt;p&gt;__&lt;/p&gt;

&lt;h2&gt;
  
  
  Comments
&lt;/h2&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight viml"&gt;&lt;code&gt;# This &lt;span class="k"&gt;is&lt;/span&gt; &lt;span class="k"&gt;a&lt;/span&gt; single &lt;span class="nb"&gt;line&lt;/span&gt; comment
/*
    This &lt;span class="k"&gt;is&lt;/span&gt;
    multi &lt;span class="nb"&gt;line&lt;/span&gt;
    comment
*/
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;__&lt;/p&gt;

&lt;h2&gt;
  
  
  Defining Variables
&lt;/h2&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight viml"&gt;&lt;code&gt;bool variable &lt;span class="p"&gt;=&lt;/span&gt; True
bool variable_1 &lt;span class="p"&gt;=&lt;/span&gt; False
bool variable_2 &lt;span class="p"&gt;=&lt;/span&gt; False &lt;span class="p"&gt;||&lt;/span&gt; True

int variable_0 &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="m"&gt;5&lt;/span&gt;
int variable_1 &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="m"&gt;6&lt;/span&gt; &lt;span class="p"&gt;+&lt;/span&gt; &lt;span class="m"&gt;5&lt;/span&gt; &lt;span class="p"&gt;-&lt;/span&gt; &lt;span class="m"&gt;7&lt;/span&gt; * &lt;span class="m"&gt;7&lt;/span&gt; / &lt;span class="m"&gt;2&lt;/span&gt; &lt;span class="p"&gt;+&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;
    &lt;span class="m"&gt;5&lt;/span&gt; &lt;span class="p"&gt;-&lt;/span&gt; variable_0 * &lt;span class="p"&gt;(&lt;/span&gt; &lt;span class="m"&gt;6&lt;/span&gt; % &lt;span class="m"&gt;2&lt;/span&gt; &lt;span class="p"&gt;)&lt;/span&gt;
&lt;span class="p"&gt;)&lt;/span&gt;

variable_1 &lt;span class="p"&gt;+=&lt;/span&gt; &lt;span class="m"&gt;5&lt;/span&gt;

double variable &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="m"&gt;6&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="m"&gt;2&lt;/span&gt; &lt;span class="p"&gt;+&lt;/span&gt; &lt;span class="m"&gt;8&lt;/span&gt;
double variable_2 &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="m"&gt;0&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="m"&gt;1&lt;/span&gt; &lt;span class="p"&gt;-&lt;/span&gt; &lt;span class="m"&gt;0&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="m"&gt;4&lt;/span&gt;


char variable &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="s1"&gt;'H'&lt;/span&gt;
char variable_1 &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="s2"&gt;"h"&lt;/span&gt;

&lt;span class="nb"&gt;string&lt;/span&gt; variable &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="s2"&gt;"Hello World"&lt;/span&gt;
&lt;span class="nb"&gt;string&lt;/span&gt; variable_1 &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="s1"&gt;'Hello world!!'&lt;/span&gt;
&lt;span class="nb"&gt;string&lt;/span&gt; variable_2 &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="s2"&gt;"Hello"&lt;/span&gt; &lt;span class="p"&gt;+&lt;/span&gt; &lt;span class="s2"&gt;" World"&lt;/span&gt; &lt;span class="p"&gt;+&lt;/span&gt; &lt;span class="s1"&gt;','&lt;/span&gt; &lt;span class="p"&gt;+&lt;/span&gt; &lt;span class="s1"&gt;' Dude!!!'&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  Define variable without writing the type
&lt;/h3&gt;

&lt;p&gt;You can define variables without writing the variable type like that.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight viml"&gt;&lt;code&gt;var new_variable &lt;span class="p"&gt;=&lt;/span&gt; True
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;or directly&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight viml"&gt;&lt;code&gt;new_variable &lt;span class="p"&gt;=&lt;/span&gt; True
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;the language will try to infer the type of the variable then define new variable&lt;br&gt;
based on the infered type, so the new variable will be of type boolean.&lt;/p&gt;
&lt;h3&gt;
  
  
  A Note
&lt;/h3&gt;

&lt;p&gt;take a special note that if you define character like this&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight viml"&gt;&lt;code&gt;new_variable &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="s1"&gt;'H'&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;the language will consider it as string.&lt;/p&gt;

&lt;p&gt;__&lt;/p&gt;

&lt;p&gt;New line is the line terminator for the statement (like simicolon in c and c++)&lt;/p&gt;

&lt;h2&gt;
  
  
  Precedence
&lt;/h2&gt;

&lt;p&gt;This is the precedence of the operators&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;( True, False, Int Number, Double Number, Variable, Character, String, Open Parenthese - Close Parenthese - () )&lt;/li&gt;
&lt;li&gt;( *, /, % )&lt;/li&gt;
&lt;li&gt;(  +, - )&lt;/li&gt;
&lt;li&gt;( &amp;lt;, &amp;lt;=, &amp;gt;, &amp;gt;= )&lt;/li&gt;
&lt;li&gt;( ==, != )&lt;/li&gt;
&lt;li&gt;( &amp;amp;&amp;amp; )&lt;/li&gt;
&lt;li&gt;( || )&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;__&lt;/p&gt;

&lt;h2&gt;
  
  
  Print Statement
&lt;/h2&gt;

&lt;p&gt;To print a variable you can do&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight viml"&gt;&lt;code&gt;bool variable &lt;span class="p"&gt;=&lt;/span&gt; False
&lt;span class="k"&gt;print&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;variable&lt;span class="p"&gt;)&lt;/span&gt;

&lt;span class="k"&gt;print&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s2"&gt;"Hello, "&lt;/span&gt; &lt;span class="p"&gt;+&lt;/span&gt; &lt;span class="s2"&gt;"World !!!"&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;__&lt;/p&gt;

&lt;h2&gt;
  
  
  Input Statement
&lt;/h2&gt;

&lt;p&gt;To get an input from the console&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight viml"&gt;&lt;code&gt;var &lt;span class="nb"&gt;line&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="nb"&gt;input&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;input will be of type &lt;code&gt;String&lt;/code&gt;.&lt;/p&gt;

&lt;p&gt;to get input of another types&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight viml"&gt;&lt;code&gt;var line1 &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="nb"&gt;input&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt; &lt;span class="k"&gt;as&lt;/span&gt; bool
var line2 &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="nb"&gt;input&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt; &lt;span class="k"&gt;as&lt;/span&gt; int
var line3 &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="nb"&gt;input&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt; &lt;span class="k"&gt;as&lt;/span&gt; double
var line4 &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="nb"&gt;input&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt; &lt;span class="k"&gt;as&lt;/span&gt; char
var line5 &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="nb"&gt;input&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt; &lt;span class="k"&gt;as&lt;/span&gt; &lt;span class="nb"&gt;string&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;this will get the input from console and convert it to the type you specified.&lt;/p&gt;

&lt;p&gt;you can also use it in an expression like this.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight viml"&gt;&lt;code&gt;var &lt;span class="k"&gt;x&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="m"&gt;5&lt;/span&gt; &lt;span class="p"&gt;+&lt;/span&gt; &lt;span class="nb"&gt;input&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt; &lt;span class="k"&gt;as&lt;/span&gt; int &lt;span class="p"&gt;+&lt;/span&gt; &lt;span class="m"&gt;7&lt;/span&gt;
&lt;span class="k"&gt;print&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="k"&gt;x&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;it take the input and assign the result sum value to &lt;code&gt;x&lt;/code&gt; variable.&lt;/p&gt;

&lt;p&gt;__&lt;/p&gt;

&lt;h2&gt;
  
  
  If Statement
&lt;/h2&gt;

&lt;p&gt;You can make an if statement in this syntax&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight viml"&gt;&lt;code&gt;&lt;span class="k"&gt;x&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="nb"&gt;input&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt; &lt;span class="k"&gt;as&lt;/span&gt; int
&lt;span class="k"&gt;if&lt;/span&gt; &lt;span class="k"&gt;x&lt;/span&gt; &lt;span class="p"&gt;&amp;gt;&lt;/span&gt; &lt;span class="m"&gt;5&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
    &lt;span class="k"&gt;print&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s2"&gt;"X is Greater than 5"&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;
&lt;span class="k"&gt;else&lt;/span&gt; &lt;span class="k"&gt;if&lt;/span&gt; &lt;span class="k"&gt;x&lt;/span&gt; &lt;span class="p"&gt;&amp;lt;&lt;/span&gt; &lt;span class="m"&gt;5&lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;
    &lt;span class="k"&gt;print&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s2"&gt;"X is less than 5"&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;
&lt;span class="k"&gt;else&lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;
    &lt;span class="k"&gt;print&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s2"&gt;"X is equal to 5"&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  Nested If
&lt;/h3&gt;

&lt;p&gt;you can make nested if&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight viml"&gt;&lt;code&gt;&lt;span class="k"&gt;x&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="nb"&gt;input&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt; &lt;span class="k"&gt;as&lt;/span&gt; int
&lt;span class="k"&gt;if&lt;/span&gt; &lt;span class="k"&gt;x&lt;/span&gt; &lt;span class="p"&gt;&amp;gt;&lt;/span&gt; &lt;span class="m"&gt;5&lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;
    &lt;span class="k"&gt;if&lt;/span&gt; &lt;span class="k"&gt;x&lt;/span&gt; &lt;span class="p"&gt;&amp;lt;&lt;/span&gt; &lt;span class="m"&gt;10&lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;
        &lt;span class="k"&gt;print&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s2"&gt;"X is Greater than 5 and less than 10"&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
    &lt;span class="p"&gt;}&lt;/span&gt;
    &lt;span class="k"&gt;else&lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;
        &lt;span class="k"&gt;print&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s2"&gt;"X is Greater than 10"&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
    &lt;span class="p"&gt;}&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;

&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;__&lt;/p&gt;

&lt;h2&gt;
  
  
  For Loop
&lt;/h2&gt;

&lt;h3&gt;
  
  
  Syntax
&lt;/h3&gt;

&lt;p&gt;you can create a for loop statement like this&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight viml"&gt;&lt;code&gt;&lt;span class="k"&gt;for&lt;/span&gt; &lt;span class="k"&gt;i&lt;/span&gt; &lt;span class="k"&gt;in&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;start&lt;span class="p"&gt;,&lt;/span&gt; end&lt;span class="p"&gt;,&lt;/span&gt; step&lt;span class="p"&gt;){&lt;/span&gt;
    # Statements
&lt;span class="p"&gt;}&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Or you can skip any element like this&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight viml"&gt;&lt;code&gt;&lt;span class="k"&gt;for&lt;/span&gt; &lt;span class="k"&gt;i&lt;/span&gt; &lt;span class="k"&gt;in&lt;/span&gt; &lt;span class="p"&gt;(,&lt;/span&gt; end&lt;span class="p"&gt;,&lt;/span&gt; step&lt;span class="p"&gt;){&lt;/span&gt;
    # Statements
&lt;span class="p"&gt;}&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;This will generate loop starting from &lt;code&gt;0&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;Or&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight viml"&gt;&lt;code&gt;&lt;span class="k"&gt;for&lt;/span&gt; &lt;span class="k"&gt;i&lt;/span&gt; &lt;span class="k"&gt;in&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;start&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="p"&gt;,&lt;/span&gt; step&lt;span class="p"&gt;){&lt;/span&gt;
    # Statements
&lt;span class="p"&gt;}&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;This will make an infinity loop as we didn't define &lt;code&gt;end&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;Or&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight viml"&gt;&lt;code&gt;&lt;span class="k"&gt;for&lt;/span&gt; &lt;span class="k"&gt;i&lt;/span&gt; &lt;span class="k"&gt;in&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;start&lt;span class="p"&gt;,&lt;/span&gt; end&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="p"&gt;){&lt;/span&gt;
    # Statements
&lt;span class="p"&gt;}&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;This will loop forever as we didn't increament the step counter&lt;/p&gt;

&lt;h3&gt;
  
  
  Examples
&lt;/h3&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight viml"&gt;&lt;code&gt;&lt;span class="k"&gt;for&lt;/span&gt; &lt;span class="k"&gt;i&lt;/span&gt; &lt;span class="k"&gt;in&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="m"&gt;0&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="m"&gt;10&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="m"&gt;1&lt;/span&gt;&lt;span class="p"&gt;){&lt;/span&gt;
    &lt;span class="k"&gt;print&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="k"&gt;i&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
    &lt;span class="k"&gt;print&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s2"&gt;"\n"&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;__&lt;/p&gt;

&lt;h3&gt;
  
  
  Break Statement
&lt;/h3&gt;

&lt;p&gt;You can define break statement inside for loop statement like this&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight viml"&gt;&lt;code&gt;start &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="m"&gt;0&lt;/span&gt;
end &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="m"&gt;10&lt;/span&gt;
step &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="m"&gt;1&lt;/span&gt;
&lt;span class="k"&gt;for&lt;/span&gt; &lt;span class="k"&gt;i&lt;/span&gt; &lt;span class="k"&gt;in&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;start&lt;span class="p"&gt;,&lt;/span&gt; end&lt;span class="p"&gt;,&lt;/span&gt; step&lt;span class="p"&gt;){&lt;/span&gt;
    &lt;span class="k"&gt;if&lt;/span&gt; &lt;span class="k"&gt;x&lt;/span&gt; &lt;span class="p"&gt;&amp;gt;&lt;/span&gt; &lt;span class="m"&gt;5&lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;
        &lt;span class="k"&gt;break&lt;/span&gt;
    &lt;span class="p"&gt;}&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  Continue Statement
&lt;/h3&gt;

&lt;p&gt;You can define continue statement inside for loop statement like this&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight viml"&gt;&lt;code&gt;start &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="m"&gt;0&lt;/span&gt;
end &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="m"&gt;10&lt;/span&gt;
step &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="m"&gt;1&lt;/span&gt;
&lt;span class="k"&gt;for&lt;/span&gt; &lt;span class="k"&gt;i&lt;/span&gt; &lt;span class="k"&gt;in&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;start&lt;span class="p"&gt;,&lt;/span&gt; end&lt;span class="p"&gt;,&lt;/span&gt; step&lt;span class="p"&gt;){&lt;/span&gt;
    &lt;span class="k"&gt;if&lt;/span&gt; &lt;span class="k"&gt;x&lt;/span&gt; &lt;span class="p"&gt;&amp;gt;&lt;/span&gt; &lt;span class="m"&gt;5&lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;
        &lt;span class="k"&gt;continue&lt;/span&gt;
    &lt;span class="p"&gt;}&lt;/span&gt;
    &lt;span class="k"&gt;print&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s2"&gt;"Hello World\n"&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;__&lt;/p&gt;

&lt;h2&gt;
  
  
  Byte Code
&lt;/h2&gt;

&lt;h3&gt;
  
  
  Introduction
&lt;/h3&gt;

&lt;p&gt;This is the byte code instructions that will be generated if you want to compile the code into byte code.&lt;/p&gt;




&lt;h3&gt;
  
  
  &lt;code&gt;EngineByteCode&lt;/code&gt; Instruction
&lt;/h3&gt;

&lt;p&gt;This is the first instruction in the file&lt;/p&gt;

&lt;p&gt;&lt;code&gt;LINE:EngineByteCode:v0.1.0&lt;/code&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;code&gt;LINE&lt;/code&gt; =&amp;gt; is the current instruction line, it will start from &lt;code&gt;0&lt;/code&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;EngineByteCode&lt;/code&gt; =&amp;gt; Instruction Type&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;v0.1.0&lt;/code&gt; =&amp;gt; Current version&lt;/li&gt;
&lt;/ul&gt;




&lt;h3&gt;
  
  
  &lt;code&gt;Assign&lt;/code&gt; Instruction
&lt;/h3&gt;

&lt;p&gt;This instruction is used to create new variable then assign it with value.&lt;/p&gt;

&lt;p&gt;&lt;code&gt;LINE:Assign:VariableType:"VariableName":VariableValue&lt;/code&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;code&gt;LINE&lt;/code&gt; =&amp;gt; is the current instruction line&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;Assign&lt;/code&gt; =&amp;gt; is the instruction Type&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;VariableType&lt;/code&gt; =&amp;gt; is the Variable type for ex: (bool, int, double, character, string)&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;"VariableName"&lt;/code&gt; =&amp;gt; Variable Name with double quotes&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;VariableValue&lt;/code&gt; =&amp;gt; The value for the variable for ex: (True, False, 5, 'H', "Hello")&lt;/li&gt;
&lt;/ul&gt;

&lt;h4&gt;
  
  
  Exampls
&lt;/h4&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight viml"&gt;&lt;code&gt;&lt;span class="m"&gt;5&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;Assign&lt;span class="p"&gt;:&lt;/span&gt;bool&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="s2"&gt;"variable_1"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;True
&lt;span class="m"&gt;6&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;Assign&lt;span class="p"&gt;:&lt;/span&gt;bool&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="s2"&gt;"variable_2"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;False
&lt;span class="m"&gt;7&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;Assign&lt;span class="p"&gt;:&lt;/span&gt;int&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="s2"&gt;"variable_3"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="m"&gt;5&lt;/span&gt;
&lt;span class="m"&gt;8&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;Assign&lt;span class="p"&gt;:&lt;/span&gt;double&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="s2"&gt;"variable_4"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="m"&gt;5&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="m"&gt;2&lt;/span&gt;
&lt;span class="m"&gt;9&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;Assign&lt;span class="p"&gt;:&lt;/span&gt;char&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="s2"&gt;"variable_5"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="s1"&gt;'H'&lt;/span&gt;
&lt;span class="m"&gt;10&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;Assign&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="nb"&gt;string&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="s2"&gt;"variable_6"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="s2"&gt;"Hello, World!"&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;






&lt;h3&gt;
  
  
  &lt;code&gt;Convert&lt;/code&gt; Instruction
&lt;/h3&gt;

&lt;p&gt;This instruction is used to convert the value from type to another.&lt;/p&gt;

&lt;p&gt;&lt;code&gt;LINE:Convert:ConvertToType:"AsssignToVariableName":"FromVariableName"&lt;/code&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;code&gt;LINE&lt;/code&gt; =&amp;gt; is the current instruction line&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;Convert&lt;/code&gt; =&amp;gt; Instruction Type&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;ConvertToType&lt;/code&gt; =&amp;gt; This is the convert to type for ex: (bool, int, double, character, string)&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;"AsssignToVariableName"&lt;/code&gt; =&amp;gt; Variable name which the converted value will be put in it.&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;"FromVariableName"&lt;/code&gt; =&amp;gt; Variable name which will have the value which needs to be converted.&lt;/li&gt;
&lt;/ul&gt;

&lt;h4&gt;
  
  
  Examples
&lt;/h4&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight viml"&gt;&lt;code&gt;&lt;span class="m"&gt;5&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;Convert&lt;span class="p"&gt;:&lt;/span&gt;bool&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="s2"&gt;"Variable2"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="s2"&gt;"Variable1"&lt;/span&gt;
&lt;span class="m"&gt;6&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;Convert&lt;span class="p"&gt;:&lt;/span&gt;double&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="s2"&gt;"Variable3"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="s2"&gt;"Variable4"&lt;/span&gt;
&lt;span class="m"&gt;7&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;Convert&lt;span class="p"&gt;:&lt;/span&gt;char&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="s2"&gt;"Variable5"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="s2"&gt;"Variable6"&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;






&lt;h3&gt;
  
  
  &lt;code&gt;Operation&lt;/code&gt; Instruction
&lt;/h3&gt;

&lt;p&gt;This is the operations instruction&lt;/p&gt;

&lt;p&gt;&lt;code&gt;LINE:Operation:OperationType:"AssignToVariableName":"LeftVariableName":"RightVariableName"&lt;/code&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;code&gt;LINE&lt;/code&gt; =&amp;gt; is the current instruction line&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;Operation&lt;/code&gt; =&amp;gt; Instruction Type&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;OperationType&lt;/code&gt; =&amp;gt; Operation Type (
Plus, Minus, Mul, Div, Mod,
And, Or,
GreaterThan, GreaterThanOrEqual, LessThan, LessThanOrEqual,
Equal, NotEqual)&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;"AssignToVariableName"&lt;/code&gt; =&amp;gt; The variable name which the final value will be assigned to it.&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;"LeftVariableName"&lt;/code&gt; =&amp;gt; the first variable&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;"RightVariableName"&lt;/code&gt; =&amp;gt;  the second variable&lt;/li&gt;
&lt;/ul&gt;

&lt;h4&gt;
  
  
  Examples
&lt;/h4&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight viml"&gt;&lt;code&gt;&lt;span class="m"&gt;6&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;Operation&lt;span class="p"&gt;:&lt;/span&gt;Plus&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="s2"&gt;"Variable3"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="s2"&gt;"Variable2"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="s2"&gt;"Variable1"&lt;/span&gt;
&lt;span class="m"&gt;7&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;Operation&lt;span class="p"&gt;:&lt;/span&gt;And&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="s2"&gt;"Variable5"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="s2"&gt;"Variable4"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="s2"&gt;"Variable3"&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;






&lt;h3&gt;
  
  
  &lt;code&gt;Print&lt;/code&gt; Instruction
&lt;/h3&gt;

&lt;p&gt;This is the print instruction&lt;/p&gt;

&lt;p&gt;&lt;code&gt;LINE:Print:"VariableName"&lt;/code&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;code&gt;LINE&lt;/code&gt; =&amp;gt; is the current instruction line&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;Print&lt;/code&gt; =&amp;gt; Instruction Type&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;"VariableName"&lt;/code&gt; =&amp;gt; The variable name to print&lt;/li&gt;
&lt;/ul&gt;

&lt;h4&gt;
  
  
  Examples
&lt;/h4&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight viml"&gt;&lt;code&gt;&lt;span class="m"&gt;5&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;Print&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="s2"&gt;"Variable"&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;






&lt;h3&gt;
  
  
  &lt;code&gt;Input&lt;/code&gt; Instruction
&lt;/h3&gt;

&lt;p&gt;This is the input instruction.&lt;/p&gt;

&lt;p&gt;&lt;code&gt;LINE:Input:"VariableName"&lt;/code&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;code&gt;LINE&lt;/code&gt; =&amp;gt; is the current instruction line&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;Input&lt;/code&gt; =&amp;gt; Instruction Type&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;"VariableName"&lt;/code&gt; =&amp;gt; The variable name to put the input value in it.&lt;/li&gt;
&lt;/ul&gt;

&lt;h4&gt;
  
  
  Examples
&lt;/h4&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight viml"&gt;&lt;code&gt;&lt;span class="m"&gt;18&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;Input&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="s2"&gt;"temp_stack1_variable_7"&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;






&lt;h3&gt;
  
  
  &lt;code&gt;If&lt;/code&gt; Instruction
&lt;/h3&gt;

&lt;p&gt;This is the if control flow instruction.&lt;/p&gt;

&lt;p&gt;&lt;code&gt;LINE:If:"VariableName":GoToLINE&lt;/code&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;code&gt;LINE&lt;/code&gt; =&amp;gt; is the current instruction line&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;If&lt;/code&gt; =&amp;gt; Instruction Type&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;"VariableName"&lt;/code&gt; =&amp;gt; Variable name to compare it's value, it's value will be True or False.&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;GoToLINE&lt;/code&gt; =&amp;gt; The Instruction line to go to if the condition for if statement is False, (&lt;code&gt;"VariableName"&lt;/code&gt; value is False)&lt;/li&gt;
&lt;/ul&gt;

&lt;h4&gt;
  
  
  Examples
&lt;/h4&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight viml"&gt;&lt;code&gt;&lt;span class="m"&gt;227&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;If&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="s2"&gt;"temp_stack2_variable_108"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="m"&gt;234&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;






&lt;h3&gt;
  
  
  &lt;code&gt;GoTo&lt;/code&gt; Instruction
&lt;/h3&gt;

&lt;p&gt;This is the Go to instruction, which is used to just go for another line.&lt;/p&gt;

&lt;p&gt;&lt;code&gt;LINE:GoTo:GoToLine&lt;/code&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;code&gt;LINE&lt;/code&gt; =&amp;gt; is the current instruction line&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;GoTo&lt;/code&gt; =&amp;gt; Instruction Type&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;GoToLine&lt;/code&gt; =&amp;gt; The line number to go to it.&lt;/li&gt;
&lt;/ul&gt;

&lt;h4&gt;
  
  
  Examples
&lt;/h4&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight viml"&gt;&lt;code&gt;&lt;span class="m"&gt;233&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;GoTo&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="m"&gt;246&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;






&lt;h3&gt;
  
  
  &lt;code&gt;End&lt;/code&gt; Instruction
&lt;/h3&gt;

&lt;p&gt;This is the last byte code instruction to be generated&lt;/p&gt;

&lt;p&gt;&lt;code&gt;LINE:End:&lt;/code&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;code&gt;LINE&lt;/code&gt; =&amp;gt; is the current instruction line&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;End&lt;/code&gt; =&amp;gt; Instruction Type&lt;/li&gt;
&lt;/ul&gt;

&lt;h4&gt;
  
  
  Examples
&lt;/h4&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight viml"&gt;&lt;code&gt;&lt;span class="m"&gt;130&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;End&lt;span class="p"&gt;:&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  Conclusion &amp;amp; Contributing
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;Engine is still under development, but i hope to release it in this year.&lt;/li&gt;
&lt;li&gt;So if you want to coontribute, please do not hesitate to do that. you don't need to know rust to contribute, there are many ways to contribute like improving syntax, improving docs, etc...&lt;/li&gt;
&lt;li&gt;&lt;a href="https://github.com/engine-lang/engine"&gt;Engine language Repo&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;You can DM Me at &lt;code&gt;abdoaslam000@gmail.com&lt;/code&gt; or at &lt;a href="https://www.linkedin.com/in/hady-eslam/"&gt;LinkedIn&lt;/a&gt;
&lt;/li&gt;
&lt;/ul&gt;

</description>
      <category>programming</category>
      <category>opensource</category>
    </item>
    <item>
      <title>Designing new programming language</title>
      <dc:creator>Hady Eslam</dc:creator>
      <pubDate>Sat, 23 Dec 2023 19:11:59 +0000</pubDate>
      <link>https://dev.to/hady_eslam/designing-new-programming-language-4jh1</link>
      <guid>https://dev.to/hady_eslam/designing-new-programming-language-4jh1</guid>
      <description>&lt;p&gt;Hi everyone.&lt;/p&gt;

&lt;p&gt;I am currently designing a new programming language that is based on Rust programming language, which will have a set of new features and powerful techniques. which I think will change the game.&lt;/p&gt;

&lt;p&gt;so if there is anyone interested or wants to help, please DM me &lt;a href="mailto:abdoaslam000@gmail.com"&gt;abdoaslam000@gmail.com&lt;/a&gt;&lt;/p&gt;

</description>
      <category>help</category>
      <category>rust</category>
      <category>development</category>
      <category>programming</category>
    </item>
    <item>
      <title>Qnotly - VSCode Extension</title>
      <dc:creator>Hady Eslam</dc:creator>
      <pubDate>Fri, 09 Jun 2023 15:42:30 +0000</pubDate>
      <link>https://dev.to/hady_eslam/qnotly-vscode-extension-1277</link>
      <guid>https://dev.to/hady_eslam/qnotly-vscode-extension-1277</guid>
      <description>&lt;h2&gt;
  
  
  Introduction
&lt;/h2&gt;

&lt;p&gt;Hello Dev.to Community.&lt;/p&gt;

&lt;p&gt;I am Very happy to announce the launch of Qnotly in Producthunt &lt;a href="https://www.producthunt.com/posts/qnotly"&gt;Qnotly Launch page&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;Qnotly is a vscode extension to take notes on your code and save it for later use.&lt;br&gt;
This will help you to write notes in code so you can list them and see them for later.&lt;/p&gt;

&lt;p&gt;You Can Save QNote, by highlighting the code you write and right-click and choose Save Qnote. and when you click on the file it will show you all Qnotes that exist in this file.&lt;br&gt;
You can even delete them if you want.&lt;/p&gt;

&lt;p&gt;This Extension will help you to right your own comments or notes about the code without writing comments in the code. also, it will help you to remember why this code exists by looking into your Qnotes in this file.&lt;/p&gt;

&lt;p&gt;This project still has more areas for improvement, and I would love to hear from you if you have any feedback, new feature, etc... this will be a great help for me to improve this extension and be more stable for use. Also can you help in upvoting and using it in producthunt, This will be a great help for me. &lt;/p&gt;

&lt;h2&gt;
  
  
  Resources
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;Producthunt Launch Page: &lt;a href="https://www.producthunt.com/posts/qnotly"&gt;Launch Page&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;To find the extension in vscode market &lt;a href="https://marketplace.visualstudio.com/items?itemName=Qnotly.qnotly"&gt;Extension in market&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;Github Repo &lt;a href="https://github.com/qnotly/vscode-extension"&gt;Qnotly Vscode Extension&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;To Request a Feature Or Report Bug Go To &lt;a href="https://github.com/qnotly/vscode-extension"&gt;Qnotly Vscode Extension&lt;/a&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Do not hesitate to contact me if you want anything: &lt;a href=""&gt;abdoaslam000@gmail.com&lt;/a&gt;&lt;/p&gt;

</description>
      <category>vscode</category>
      <category>extensions</category>
      <category>news</category>
    </item>
    <item>
      <title>HTTP introduction</title>
      <dc:creator>Hady Eslam</dc:creator>
      <pubDate>Wed, 16 Oct 2019 19:23:22 +0000</pubDate>
      <link>https://dev.to/hady_eslam/http-introduction-338</link>
      <guid>https://dev.to/hady_eslam/http-introduction-338</guid>
      <description>&lt;h1&gt;
  
  
  HTTP
&lt;/h1&gt;

&lt;p&gt;Who else not heard of http in the industry or outside it, as it the language that  make the clients ( Like Browsers, Aplications, Robots, Crawlers, etc ) and servers communicate with each other. and there is HTTPS Which is an Encrypted and secure version of HTTP So no man in the middle can steal your data When your client communicats with the server. It is like sending messages to each others and thats the concept that http is build upon&lt;/p&gt;




&lt;h2&gt;
  
  
  HTTP-Messages
&lt;/h2&gt;

&lt;p&gt;HTTP Messages Have Two Types : &lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;Request Messages&lt;/strong&gt; : These are the messages that your client send to your &lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Response Messages&lt;/strong&gt; : These are the messages that the server respond to your client which return the requested resource which the client request&lt;/li&gt;
&lt;/ol&gt;




&lt;h1&gt;
  
  
  HTTP-Message-Components
&lt;/h1&gt;

&lt;p&gt;HTTP Messages ( Request or Response ) Consists Of Three Parts&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Start Line&lt;/li&gt;
&lt;li&gt;Headers&lt;/li&gt;
&lt;li&gt;Message Body&lt;/li&gt;
&lt;/ol&gt;




&lt;h3&gt;
  
  
  1. Start Line
&lt;/h3&gt;

&lt;p&gt;It is the start line of the message which determine if this message is request message or response message.&lt;/p&gt;

&lt;h4&gt;
  
  
  Request Start Line
&lt;/h4&gt;

&lt;p&gt;The start line for request message is like this &lt;br&gt; &lt;code&gt;[HTTP Method] [Resource Path] [HTTP/major.minor]&lt;/code&gt;&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;HTTP Method&lt;/strong&gt; is the method that the client use to his Request.&lt;br&gt;
The Common Methods Used is&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;GET&lt;/li&gt;
&lt;li&gt;POST&lt;/li&gt;
&lt;li&gt;DELETE&lt;/li&gt;
&lt;li&gt;PUT&lt;/li&gt;
&lt;li&gt;PATCH&lt;/li&gt;
&lt;li&gt;CONNECT&lt;/li&gt;
&lt;li&gt;HEAD&lt;/li&gt;
&lt;li&gt;OPTIONS&lt;/li&gt;
&lt;li&gt;TRACE&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Resource Path&lt;/strong&gt; is the resource path or the data path which the client wants from the server.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;HTTP/major.minor&lt;/strong&gt; is the HTTP Version which is consist of major version and minor version because there is http versions out there.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;em&gt;HTTP/0.9&lt;/em&gt; which is the older version&lt;/li&gt;
&lt;li&gt;&lt;em&gt;HTTP/1.0&lt;/em&gt;&lt;/li&gt;
&lt;li&gt;
&lt;em&gt;HTTP/1.1&lt;/em&gt; which is The Commonly used version&lt;/li&gt;
&lt;li&gt;
&lt;em&gt;HTTP/2.0&lt;/em&gt; I think it is the last version&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;And Be Careful because there is space between the method and resource path and http version.&lt;/p&gt;

&lt;p&gt;An Example For HTTP Request Message&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;GET /http/What-is-HTTP HTTP/1.1
Host : dev.to
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h4&gt;
  
  
  Response Start Line
&lt;/h4&gt;

&lt;p&gt;The Start Line for the response message is like this&lt;br&gt; &lt;code&gt;[HTTP/major.minor] [Response Code] [Response Description Line]&lt;/code&gt;&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;HTTP/major.minor&lt;/strong&gt; is The HTTP version&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Response Code&lt;/strong&gt; is the response code that the server respond to client with it like&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;em&gt;404&lt;/em&gt; Which mean this resource not found&lt;/li&gt;
&lt;li&gt;
&lt;em&gt;200&lt;/em&gt; Which mean the resource found and there it is&lt;/li&gt;
&lt;li&gt;...etc&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Response Description Line&lt;/strong&gt; this is just description text for the humans to understand. also note that the code for machine and the text for humans&lt;/p&gt;&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;An Example On HTTP Response Message&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;HTTP/1.1 200 Success
Server : Apache
Content-Type : text/html
Content-Length : 12

Hello World!
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;






&lt;h3&gt;
  
  
  2. Headers
&lt;/h3&gt;

&lt;p&gt;Headers is the data that describe the message and also an instructions to the message receiver ( client or server ) and contain other useful info about the message.&lt;/p&gt;

&lt;p&gt;An Example on it&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Server : Apache
X-Frame-Options : SAMEORIGN
Content-Length : 15
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;There is Many Headers But They Have Four Types&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;General Headers&lt;/strong&gt; Which Used in Request and Response Messages&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Entity Headers&lt;/strong&gt; Which Contains information About The Message&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Request Headers&lt;/strong&gt; Which is Headers That Reside in Request Messages&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Response Headers&lt;/strong&gt; Which is Headers That Reside in Response Messages&lt;/li&gt;
&lt;/ol&gt;




&lt;h3&gt;
  
  
  3. Message Body
&lt;/h3&gt;

&lt;p&gt;It Is The Resource Or Data The Client Wants Or The Server Receive &lt;/p&gt;




&lt;p&gt;For More Resources I Think &lt;a href="https://developer.mozilla.org/en-US/docs/Web/HTTP"&gt;MDN&lt;/a&gt; Is Greet Place&lt;/p&gt;

</description>
      <category>beginners</category>
      <category>http</category>
    </item>
  </channel>
</rss>
