Skip to content

statics-opt.stx

pdmosses/metaborg-poosl/org.metaborg.lang.poosl/trans/statics-opt.stx

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
module 

imports
    signatures/Poosl-sig
    signatures/Common-sig

rules   // === Strip optional lists =======

     : OptExpressionList -> list(Expression)
    stripOptExpressionList(NoExpressions()) = [].
    stripOptExpressionList(Expressions(exprs)) = exprs.

     : OptInstanceParameterList -> list(InstanceParameter)
    stripOptInstanceParameterList(NoInstanceParameters()) = [].
    stripOptInstanceParameterList(InstanceParameters(parameters)) = parameters.

     : OptLocalVariableList -> list(Declaration)
    stripOptLocalVariablesList(NoLocalVariables()) = [].
    stripOptLocalVariablesList(LocalVariables(declarations)) = declarations.

     : OptParameterList -> list(Declaration)
    stripOptParameterList(NoParameters()) = [].
    stripOptParameterList(Parameters(declarations)) = declarations.

     : OptVariableList -> list(string)
    stripOptVariableList(NoVariables()) = [].
    stripOptVariableList(Variables(vars)) = vars.