This commit is contained in:
Paul Tagliamonte 2012-12-24 13:41:29 -05:00
parent 37d134b32b
commit b9e621fa07
4 changed files with 79 additions and 0 deletions

28
demo/app.py Normal file
View File

@ -0,0 +1,28 @@
from hy.compiler.ast27 import forge_ast
from hy.lex.tokenize import tokenize
import codegen
import sys
from flask import Flask, render_template, request
app = Flask(__name__)
@app.route('/')
def index():
return render_template('index.html')
@app.route('/translate', methods=['POST'])
def translate():
lines = request.form['code']
try:
code = tokenize(lines)
ast = forge_ast("stdin", code)
return codegen.to_source(ast)
except Exception as e:
return str(e)
if __name__ == '__main__':
app.run(debug=True)

2
demo/static/jquery-1.8.3.min.js vendored Normal file

File diff suppressed because one or more lines are too long

1
demo/static/jquery.min.js vendored Symbolic link
View File

@ -0,0 +1 @@
jquery-1.8.3.min.js

48
demo/templates/index.html Normal file
View File

@ -0,0 +1,48 @@
<!DOCTYPE html>
<html>
<head>
<title>Hy!</title>
<script type="text/javascript" src="/static/jquery.min.js"></script>
<script type="text/javascript">
$(document).ready(function() {
$("#repl-input").keyup(function(e) {
var input = $("#repl-input").val();
console.log("Input: " + input);
$('#repl-output').load(
'/translate',
{"code": input}
);
});
});
</script>
<style>
html, body {
height: 90%;
padding: 0px;
margin: 0px;
}
.repl {
width: 100%;
height: 100%;
}
#repl-input {
float: left;
width: 49%;
border: 0px solid #000000;
resize: none;
height: 100%;
}
#repl-output {
float: right;
width: 49%;
height: 100%;
}
</style>
</head>
<body>
<div class = 'repl' >
<textarea id = 'repl-input' >; LISP input</textarea>
<pre id = 'repl-output' ></pre>
</div>
</body>
</html>