This is a transpiler which transforms the HTML markup language into a full working turing complete programming language.
python ./main.py <input_html_name> <output_binary_name>
example:
python ./main.py ./programs/fibonacci.html output
As a generale rule, the id
property is considered the identifier and class
property is considered the type.
<html>
<head></head>
<body>
<div id="main" class="int">
</div>
</body>
</html>
numbers
<p>10</p>
strings
<p>"hello"</p>
Add 10
and 20
<h1>
<p>10</p>
<p>20</p>
</h1>
Subtract 10
from 20
<h2>
<p>20</p>
<p>10</p>
</h2>
Multiply 10
and 20
<h3>
<p>10</p>
<p>20</p>
</h3>
Divide 20
by 10
<h4>
<p>20</p>
<p>10</p>
</h4>
Add variable a
and 10
<h1>
<link href="a">
<p>10</p>
</h1>
Check if a
and b
are true
<h5>
<link href="a">
<link href="b">
</h5>
Check if a
or b
are true
<h6>
<link href="a">
<link href="b">
</h6>
Not a
<u>
<link href="a">
</u>
Check if a
equals b
<i>
<link href="a">
<link href="b">
</i>
Check if a
is less than b
<b>
<link href="a">
<link href="b">
</b>
Check if a
is greater than b
<strong>
<link href="a">
<link href="b">
</strong>
Call function fibonacci
with argument 5
<ul id="fibonacci">
<li><p>5</p></li>
</ul>
create a new variable a
of type int
which will be
initializated with 10
.
<span id="a" class="int">
<p>10</p>
</span>
change the value of variable a
to 20
( we don't use the class
property)
<span id="a">
<p>20</p>
</span>
create an if statement. the thead
is the condition for the if statement, tbody
are the statements if the for the true branch and tfoot
the statements for the false branch.
<table>
<thead>
<b>
<link href="a">
<p>20</p>
</b>
<thead>
<tbody>
<ul id="print">
<li><p>"success"</p></li>
</ul>
</tbody>
<tfoot>
<ul id="print">
<li><p>"failure"</p></li>
</ul>
</tfoot>
</table>
create an infinite loop with textarea
, and use the hr
to break from the loop
<textarea>
<table>
<thead>
<b>
<link href="a">
<p>0<p>
</b>
<thead>
<tbody>
<hr>
</tbody>
</table>
<textarea>
Create a new function named fibonacci
which will return an int
<div id="fibonacci" class="int">
</div>
Fibonacci function will receive a parameter of type int
identified n
. The parameters declaration location doesn't need to be at the begining of the function
<div id="fibonacci" class="int">
<ol>
<li class="int">n</li>
</ol>
</div>
Fibonacci function will return the number 10
<div id="fibonacci" class="int">
<a>
<p>10</p>
</a>
</div>