packages feed

funcons-tools-0.2.0.7: cbs/Funcons/Core/Values/Composite/ASTs/ASTs.hs

-- GeNeRaTeD fOr: ../../CBS-beta/Funcons-beta/Values/Composite/ASTs/ASTs.cbs
{-# LANGUAGE OverloadedStrings #-}

module Funcons.Core.Values.Composite.ASTs.ASTs where

import Funcons.EDSL

import Funcons.Operations hiding (Values,libFromList)
entities = []

types = typeEnvFromList
    [("asts",DataTypeMemberss "asts" [] [DataTypeMemberConstructor "ast-value" [TName "types",TName "values"] (Just []),DataTypeMemberConstructor "ast-term" [TName "tags",TSortSeq (TName "asts") StarOp] (Just [])])]

funcons = libFromList
    [("tags",NullaryFuncon stepTags),("ast-value",StrictFuncon stepAst_value),("ast-term",StrictFuncon stepAst_term),("asts",NullaryFuncon stepAsts)]

tags_ = FName "tags"
stepTags = evalRules [rewrite1] []
    where rewrite1 = do
            let env = emptyEnv
            rewriteTermTo (TName "strings") env

ast_value_ fargs = FApp "ast-value" (fargs)
stepAst_value fargs =
    evalRules [rewrite1] []
    where rewrite1 = do
            let env = emptyEnv
            env <- vsMatch fargs [VPMetaVar "_X1",VPMetaVar "_X2"] env
            env <- sideCondition (SCIsInSort (TVar "_X1") (TSortSeq (TName "values") QuestionMarkOp)) env
            env <- sideCondition (SCIsInSort (TVar "_X2") (TSortSeq (TName "values") QuestionMarkOp)) env
            rewriteTermTo (TApp "datatype-value" [TFuncon (FValue (ADTVal "list" [FValue (Char 'a'),FValue (Char 's'),FValue (Char 't'),FValue (Char '-'),FValue (Char 'v'),FValue (Char 'a'),FValue (Char 'l'),FValue (Char 'u'),FValue (Char 'e')])),TVar "_X1",TVar "_X2"]) env

ast_term_ fargs = FApp "ast-term" (fargs)
stepAst_term fargs =
    evalRules [rewrite1] []
    where rewrite1 = do
            let env = emptyEnv
            env <- vsMatch fargs [VPMetaVar "_X1",VPSeqVar "_X2*" StarOp] env
            env <- sideCondition (SCIsInSort (TVar "_X1") (TSortSeq (TName "values") QuestionMarkOp)) env
            env <- sideCondition (SCIsInSort (TVar "_X2*") (TSortSeq (TSortSeq (TName "values") QuestionMarkOp) StarOp)) env
            rewriteTermTo (TApp "datatype-value" [TFuncon (FValue (ADTVal "list" [FValue (Char 'a'),FValue (Char 's'),FValue (Char 't'),FValue (Char '-'),FValue (Char 't'),FValue (Char 'e'),FValue (Char 'r'),FValue (Char 'm')])),TVar "_X1",TVar "_X2*"]) env

asts_ = FName "asts"
stepAsts = rewriteType "asts" []