Skip to content

Commit

Permalink
adding web ui code
Browse files Browse the repository at this point in the history
  • Loading branch information
thepercyj committed Aug 23, 2024
1 parent a4fb27f commit e3d70e1
Show file tree
Hide file tree
Showing 118 changed files with 31,298 additions and 63 deletions.
Binary file modified dist/ulto-1.0.0-py3.9.egg
Binary file not shown.
20 changes: 20 additions & 0 deletions docs/Makefile
Original file line number Diff line number Diff line change
@@ -0,0 +1,20 @@
# Minimal makefile for Sphinx documentation
#

# You can set these variables from the command line, and also
# from the environment for the first two.
SPHINXOPTS ?=
SPHINXBUILD ?= sphinx-build
SOURCEDIR = source
BUILDDIR = build

# Put it first so that "make" without argument is like "make help".
help:
@$(SPHINXBUILD) -M help "$(SOURCEDIR)" "$(BUILDDIR)" $(SPHINXOPTS) $(O)

.PHONY: help Makefile

# Catch-all target: route all unknown targets to Sphinx using the new
# "make mode" option. $(O) is meant as a shortcut for $(SPHINXOPTS).
%: Makefile
@$(SPHINXBUILD) -M $@ "$(SOURCEDIR)" "$(BUILDDIR)" $(SPHINXOPTS) $(O)
Binary file added docs/build/doctrees/core.doctree
Binary file not shown.
Binary file added docs/build/doctrees/environment.pickle
Binary file not shown.
Binary file added docs/build/doctrees/index.doctree
Binary file not shown.
Binary file added docs/build/doctrees/interpreter.doctree
Binary file not shown.
Binary file added docs/build/doctrees/lazyeval.doctree
Binary file not shown.
Binary file added docs/build/doctrees/lexer.doctree
Binary file not shown.
Binary file added docs/build/doctrees/logstack.doctree
Binary file not shown.
Binary file added docs/build/doctrees/malloc.doctree
Binary file not shown.
Binary file added docs/build/doctrees/parser.doctree
Binary file not shown.
Binary file added docs/build/doctrees/semantic_analyser.doctree
Binary file not shown.
4 changes: 4 additions & 0 deletions docs/build/html/.buildinfo
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
# Sphinx build info version 1
# This file hashes the configuration used when building these files. When it is not found, a full rebuild will be done.
config: c547429da0b2c1899e5b47ebfd17356a
tags: 645f666f9bcd5a90fca523b33c5a78b7
21 changes: 21 additions & 0 deletions docs/build/html/_sources/core.rst.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,21 @@
core package
============

Modules
-------

.. toctree::
:maxdepth: 2
:caption: Core Modules

lazyeval
logstack
malloc

Module contents
---------------

.. automodule:: src.core
:members:
:undoc-members:
:show-inheritance:
57 changes: 57 additions & 0 deletions docs/build/html/_sources/index.rst.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,57 @@
.. Ulto - An Imperative Reversible Programming Language documentation master file, created by
sphinx-quickstart on Fri Aug 23 08:45:38 2024.
You can adapt this file completely to your liking, but it should at least
contain the root `toctree` directive.
Ulto - An Imperative Reversible Programming Language documentation
==================================================================

Ulto is a reversible programming language that allows you to perform forward and reverse computations. Unlike traditional programming languages where actions are typically irreversible and results in destructive process, Ulto lets you undo operations, which can be extremely useful in situations where energy efficiency is key.

Key Features
------------
**Reversible Computation:** Ulto enables you to reverse the steps of your program, undoing changes to variables and state. This makes it easier to correct errors or explore different outcomes in your program.

**Imperative Style:** Ulto uses an imperative programming style, where instructions are given in a sequence, just like in languages such as Python or C. This makes it easier for developers who are familiar with these languages to learn Ulto.

**Memory Management:** Ulto includes advanced memory management, ensuring that your program uses resources efficiently, even when performing complex operations. It also features a LogStack to keep track of changes, allowing for easy reversal of actions.

**Hyrbid Evaluation:** In Ulto, you can choose between lazy evaluation, which delays computation until the result is needed, and eager evaluation, which computes results immediately. This flexibility helps you optimize performance based on your program's needs.

**Profiling and Logging:** Ulto’s runtime environment includes tools for profiling, which helps you monitor the performance and memory usage of your program. Detailed logs are kept of each step and reversal, allowing for easier debugging and analysis.

**Pruning Operations:** Ulto also supports pruning, a process that removes old or unnecessary data from the LogStack. This helps manage memory usage effectively, especially in long-running programs.

**Energy Efficient:** Ulto main motive was to be energy efficient while performing same tasks at high levels, the language offers performance through the use of hybrid compiler/interpreter approach where most operative tasks are handled by precompiled file written in C and remaining via optimised interpreter.

Getting Started
---------------
Ulto is designed to be easy to use while offering powerful features for reversible programming. Whether you're developing scientific applications or exploring new ways of computing, Ulto provides the tools you need.

To learn more about how to use Ulto, explore the modules in this documentation. You’ll find detailed information on the lexer, interpreter, semantic analyzer, and parser, as well as the core components like LogStack and memory management.




Contents
--------

.. toctree::
:maxdepth: 2
:caption: Modules

lexer
interpreter
semantic_analyser
parser
core

---

src package
===========

.. automodule:: src
:members:
:undoc-members:
:show-inheritance:
7 changes: 7 additions & 0 deletions docs/build/html/_sources/interpreter.rst.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
interpreter module
==================

.. automodule:: src.interpreter
:members:
:undoc-members:
:show-inheritance:
7 changes: 7 additions & 0 deletions docs/build/html/_sources/lazyeval.rst.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
lazyeval module
===============

.. automodule:: src.core.lazyeval
:members:
:undoc-members:
:show-inheritance:
7 changes: 7 additions & 0 deletions docs/build/html/_sources/lexer.rst.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
lexer module
============

.. automodule:: src.lexer
:members:
:undoc-members:
:show-inheritance:
7 changes: 7 additions & 0 deletions docs/build/html/_sources/logstack.rst.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
logstack module
==============

.. automodule:: src.core.logstack
:members:
:undoc-members:
:show-inheritance:
7 changes: 7 additions & 0 deletions docs/build/html/_sources/malloc.rst.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
malloc module
============

.. automodule:: src.core.malloc
:members:
:undoc-members:
:show-inheritance:
7 changes: 7 additions & 0 deletions docs/build/html/_sources/parser.rst.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
parser module
=============

.. automodule:: src.parser
:members:
:undoc-members:
:show-inheritance:
7 changes: 7 additions & 0 deletions docs/build/html/_sources/semantic_analyser.rst.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
semantic_analyser module
========================

.. automodule:: src.semantic_analyser
:members:
:undoc-members:
:show-inheritance:
123 changes: 123 additions & 0 deletions docs/build/html/_static/_sphinx_javascript_frameworks_compat.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,123 @@
/* Compatability shim for jQuery and underscores.js.
*
* Copyright Sphinx contributors
* Released under the two clause BSD licence
*/

/**
* small helper function to urldecode strings
*
* See https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/decodeURIComponent#Decoding_query_parameters_from_a_URL
*/
jQuery.urldecode = function(x) {
if (!x) {
return x
}
return decodeURIComponent(x.replace(/\+/g, ' '));
};

/**
* small helper function to urlencode strings
*/
jQuery.urlencode = encodeURIComponent;

/**
* This function returns the parsed url parameters of the
* current request. Multiple values per key are supported,
* it will always return arrays of strings for the value parts.
*/
jQuery.getQueryParameters = function(s) {
if (typeof s === 'undefined')
s = document.location.search;
var parts = s.substr(s.indexOf('?') + 1).split('&');
var result = {};
for (var i = 0; i < parts.length; i++) {
var tmp = parts[i].split('=', 2);
var key = jQuery.urldecode(tmp[0]);
var value = jQuery.urldecode(tmp[1]);
if (key in result)
result[key].push(value);
else
result[key] = [value];
}
return result;
};

/**
* highlight a given string on a jquery object by wrapping it in
* span elements with the given class name.
*/
jQuery.fn.highlightText = function(text, className) {
function highlight(node, addItems) {
if (node.nodeType === 3) {
var val = node.nodeValue;
var pos = val.toLowerCase().indexOf(text);
if (pos >= 0 &&
!jQuery(node.parentNode).hasClass(className) &&
!jQuery(node.parentNode).hasClass("nohighlight")) {
var span;
var isInSVG = jQuery(node).closest("body, svg, foreignObject").is("svg");
if (isInSVG) {
span = document.createElementNS("http://www.w3.org/2000/svg", "tspan");
} else {
span = document.createElement("span");
span.className = className;
}
span.appendChild(document.createTextNode(val.substr(pos, text.length)));
node.parentNode.insertBefore(span, node.parentNode.insertBefore(
document.createTextNode(val.substr(pos + text.length)),
node.nextSibling));
node.nodeValue = val.substr(0, pos);
if (isInSVG) {
var rect = document.createElementNS("http://www.w3.org/2000/svg", "rect");
var bbox = node.parentElement.getBBox();
rect.x.baseVal.value = bbox.x;
rect.y.baseVal.value = bbox.y;
rect.width.baseVal.value = bbox.width;
rect.height.baseVal.value = bbox.height;
rect.setAttribute('class', className);
addItems.push({
"parent": node.parentNode,
"target": rect});
}
}
}
else if (!jQuery(node).is("button, select, textarea")) {
jQuery.each(node.childNodes, function() {
highlight(this, addItems);
});
}
}
var addItems = [];
var result = this.each(function() {
highlight(this, addItems);
});
for (var i = 0; i < addItems.length; ++i) {
jQuery(addItems[i].parent).before(addItems[i].target);
}
return result;
};

/*
* backward compatibility for jQuery.browser
* This will be supported until firefox bug is fixed.
*/
if (!jQuery.browser) {
jQuery.uaMatch = function(ua) {
ua = ua.toLowerCase();

var match = /(chrome)[ \/]([\w.]+)/.exec(ua) ||
/(webkit)[ \/]([\w.]+)/.exec(ua) ||
/(opera)(?:.*version|)[ \/]([\w.]+)/.exec(ua) ||
/(msie) ([\w.]+)/.exec(ua) ||
ua.indexOf("compatible") < 0 && /(mozilla)(?:.*? rv:([\w.]+)|)/.exec(ua) ||
[];

return {
browser: match[ 1 ] || "",
version: match[ 2 ] || "0"
};
};
jQuery.browser = {};
jQuery.browser[jQuery.uaMatch(navigator.userAgent).browser] = true;
}
Loading

0 comments on commit e3d70e1

Please sign in to comment.