Skip to content

Commit

Permalink
Iterating Array
Browse files Browse the repository at this point in the history
  • Loading branch information
spockz committed Dec 29, 2011
1 parent 9cddb93 commit fb89b90
Show file tree
Hide file tree
Showing 3 changed files with 50 additions and 11 deletions.
22 changes: 21 additions & 1 deletion resources/static/hjs/Models.hs
Original file line number Original file line Diff line number Diff line change
@@ -1,5 +1,10 @@
module Models where module Models where


import Language.UHC.JScript.ECMA.String
import Language.UHC.JScript.Primitives
import Language.UHC.JScript.Types


type ProofResult = String -- I want to make an enum of this type ProofResult = String -- I want to make an enum of this


data ProofTreeNode = Node { data ProofTreeNode = Node {
Expand All @@ -10,9 +15,24 @@ data ProofTreeNode = Node {
} }


data Rule = Rule { data Rule = Rule {
rule :: String id :: Int,
ro :: Int,
rule :: JSString
} }


data JSRulePtr
type JSRule = JSPtr JSRulePtr

instance FromJS JSRule Rule where
fromJS = jsRule2Rule

jsRule2Rule :: JSRule -> Rule
jsRule2Rule ptr = Rule {
id = getAttr "id" ptr,
ro = getAttr "ro" ptr,
rule = getAttr "rule" ptr
}

proofTreeNode = Node "" "" [] "" proofTreeNode = Node "" "" [] ""


-- class exports.ProofTreeNode extends Backbone.Model -- class exports.ProofTreeNode extends Backbone.Model
Expand Down
37 changes: 28 additions & 9 deletions resources/static/hjs/jcu.hs
Original file line number Original file line Diff line number Diff line change
Expand Up @@ -3,19 +3,27 @@ module JCU where


import Control.Monad (liftM) import Control.Monad (liftM)


import Language.UHC.JScript.Types (JS, toJS) import Data.List



import Language.UHC.JScript.Types (JS, toJS, fromJS)
import Language.UHC.JScript.Primitives import Language.UHC.JScript.Primitives
import Language.UHC.JScript.JQuery.JQuery import Language.UHC.JScript.JQuery.JQuery
import Language.UHC.JScript.ECMA.Array
import Language.UHC.JScript.W3C.HTML5 as HTML5 import Language.UHC.JScript.W3C.HTML5 as HTML5


import Language.UHC.JScript.Assorted (alert) import Language.UHC.JScript.ECMA.String

import Language.UHC.JScript.Assorted (alert , _alert)


import Language.UHC.JScript.JQuery.Ajax as Ajax import Language.UHC.JScript.JQuery.Ajax as Ajax
import qualified Language.UHC.JScript.JQuery.AjaxQueue as AQ import qualified Language.UHC.JScript.JQuery.AjaxQueue as AQ
---- ----
-- App -- App
---- ----
-- import Language.UHC.JScript.ECMA.Array

import Array


import Templates import Templates
import Models import Models
Expand All @@ -30,8 +38,6 @@ ajaxQ url onSuccess onFail = do
}) })
onSuccess onSuccess
onFail onFail
alert "meh"



register_events :: [(String, JEventType, JEventHandler)] -> IO () register_events :: [(String, JEventType, JEventHandler)] -> IO ()
register_events = mapM_ (\ (e, event, eh) -> do elem <- jQuery e register_events = mapM_ (\ (e, event, eh) -> do elem <- jQuery e
Expand Down Expand Up @@ -67,12 +73,25 @@ initialize = do -- Rendering
-- Proof tree -- Proof tree


-- Rules list -- Rules list
ajaxQ "http://localhost:8000/rules/stored" addRules (\x y z -> return ()) ajaxQ "/rules/stored" addRules noop
where noop :: AjaxCallback (JSPtr a)
noop = (\x y z -> return ())


addRules :: AjaxCallback (JSPtr a)
addRules obj str obj2 = do alert "rules!"
return ()


addRules :: AjaxCallback (JSArray JSRule)
addRules obj str obj2 = do -- slet rules = (Data.List.map fromJS . elems . jsArrayToArray) obj
f <- mkEachIterator (\ idx e -> do let ruleElem = jsRule2Rule e
_alert (rule ruleElem)
alert (jsStringToString $ rule ruleElem)

return ())

alert "rules!"
each' obj f
return ()
where ruleF :: Int -> JSRule -> IO ()
ruleF idx e = do let ruleElem = fromJS e
(alert . fromJS . rule) ruleElem


foreign import jscript "jQuery.noop()" foreign import jscript "jQuery.noop()"
noop :: IO (JSFunPtr (JSPtr a -> String -> JSPtr b -> IO())) noop :: IO (JSFunPtr (JSPtr a -> String -> JSPtr b -> IO()))
Expand Down
2 changes: 1 addition & 1 deletion resources/static/hjs/makefile
Original file line number Original file line Diff line number Diff line change
Expand Up @@ -3,4 +3,4 @@ LANGUAGE_DIR = /Users/alessandro/Documents/Uni/xp/uhc-jscript/uhc-jscript/src
all: build all: build


build: build:
${UHC} --import-path=${LANGUAGE_DIR} -tjscript --no-recomp -O,2 jcu.hs ${UHC} --import-path=${LANGUAGE_DIR} -tjscript --no-recomp --no-hi-check -O,2 --dump-core-stages=1 jcu.hs

0 comments on commit fb89b90

Please sign in to comment.