The Exploratory Parsing Webapp was written as a Ruby/Sinatra server which managed a collection of parser builds and runs. We use this to guide our Parse Protocol initial draft.
Lifecycle
get '/' do
get %r{/vers/(\w+)} do |prefix|
get %r{/runs/([\d]+)/leg} do |run|
get %r{/runs/([\d]+)/diff} do |run|
post '/start' do
post %r{/runs/([\d]+)/kill} do |run|
post %r{/runs/([\d]+)/delete} do |run|
Debug
get '/pr/code' do
post %r{/runs/([\d]+)/gdb} do |run|
Progress
get %r{/runs/([\d]+)$} do |run|
get %r{/runs/([\d]+)\.svg} do |run|
get %r{/runs/([\d]+)/offsets} do |run|
get %r{/runs/([\d]+)\.dot} do |run|
get %r{/runs/([\d]+)/profile} do |run|
get %r{/runs/([\d]+)/bindings} do |run|
Administration
use Rack::Auth::Basic do |username, password|
get '/ls/data' do
get '/ls/runs' do
get '/git/log' do
get '/ps' do