@@ -277,6 +277,7 @@ evalExpr env (IndexedExpr bool expr indices) = do
277
277
Superscript n -> evalExprDeep env n >>= return . Superscript
278
278
Subscript n -> evalExprDeep env n >>= return . Subscript
279
279
SupSubscript n -> evalExprDeep env n >>= return . SupSubscript
280
+ Userscript n -> evalExprDeep env n >>= return . Userscript
280
281
) indices
281
282
282
283
ret <- case tensor of
@@ -285,6 +286,7 @@ evalExpr env (IndexedExpr bool expr indices) = do
285
286
Superscript n -> evalExprDeep env n >>= extractScalar >>= return . Superscript
286
287
Subscript n -> evalExprDeep env n >>= extractScalar >>= return . Subscript
287
288
SupSubscript n -> evalExprDeep env n >>= extractScalar >>= return . SupSubscript
289
+ Userscript n -> evalExprDeep env n >>= extractScalar >>= return . Userscript
288
290
) indices
289
291
return $ Value (ScalarData (Div (Plus [(Term 1 [(Symbol id name js2, 1 )])]) (Plus [(Term 1 [] )])))
290
292
(Value (ScalarData _)) -> do
@@ -300,11 +302,13 @@ evalExpr env (IndexedExpr bool expr indices) = do
300
302
Superscript n -> evalExprDeep env n >>= extractScalar >>= return . Superscript
301
303
Subscript n -> evalExprDeep env n >>= extractScalar >>= return . Subscript
302
304
SupSubscript n -> evalExprDeep env n >>= extractScalar >>= return . SupSubscript
305
+ Userscript n -> evalExprDeep env n >>= extractScalar >>= return . Userscript
303
306
) indices
304
307
refArray tensor (map (\ j -> case j of
305
308
Superscript k -> ScalarData k
306
309
Subscript k -> ScalarData k
307
310
SupSubscript k -> ScalarData k
311
+ Userscript k -> ScalarData k
308
312
) js2)
309
313
let ret2 = case expr of
310
314
(VarExpr var) -> do
@@ -321,6 +325,7 @@ evalExpr env (IndexedExpr bool expr indices) = do
321
325
f (Superscript _) = Superscript ()
322
326
f (Subscript _) = Subscript ()
323
327
f (SupSubscript _) = SupSubscript ()
328
+ f (Userscript _) = Userscript ()
324
329
325
330
evalExpr env (SubrefsExpr bool expr jsExpr) = do
326
331
js <- evalExpr env jsExpr >>= collectionToList >>= return . (map Subscript )
@@ -347,6 +352,7 @@ evalExpr env (SubrefsExpr bool expr jsExpr) = do
347
352
f (Superscript _) = Superscript ()
348
353
f (Subscript _) = Subscript ()
349
354
f (SupSubscript _) = SupSubscript ()
355
+ f (Userscript _) = Userscript ()
350
356
351
357
evalExpr env (SuprefsExpr bool expr jsExpr) = do
352
358
js <- evalExpr env jsExpr >>= collectionToList >>= return . (map Superscript )
@@ -373,6 +379,7 @@ evalExpr env (SuprefsExpr bool expr jsExpr) = do
373
379
f (Superscript _) = Superscript ()
374
380
f (Subscript _) = Subscript ()
375
381
f (SupSubscript _) = SupSubscript ()
382
+ f (Userscript _) = Userscript ()
376
383
377
384
evalExpr env (UserrefsExpr bool expr jsExpr) = do
378
385
val <- evalExprDeep env expr
@@ -494,6 +501,9 @@ evalExpr env (WithSymbolsExpr vars expr) = do
494
501
isTmpSymbol symId (SupSubscript (ScalarData (Div (Plus [Term 1 [(Symbol id name is,n)]]) (Plus [Term 1 [] ]))))
495
502
| symId == id = True
496
503
| otherwise = False
504
+ isTmpSymbol symId (Userscript (ScalarData (Div (Plus [Term 1 [(Symbol id name is,n)]]) (Plus [Term 1 [] ]))))
505
+ | symId == id = True
506
+ | otherwise = False
497
507
removeTmpscripts :: String -> WHNFData -> EgisonM WHNFData
498
508
removeTmpscripts symId (Intermediate (ITensor (Tensor s xs is))) = do
499
509
let (ds, js) = partition (isTmpSymbol symId) is
0 commit comments