Skip to content
GitLab
Projects
Groups
Snippets
/
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
Menu
Open sidebar
clean-compiler-and-rts
compiler
Commits
7b638984
Commit
7b638984
authored
Jul 05, 2010
by
John van Groningen
Browse files
don't pass icl functions array to/from partitionateDclMacros,
it is not used because dcl macros cannot use icl macros.
parent
1c4690a3
Changes
3
Hide whitespace changes
Inline
Side-by-side
frontend/check.icl
View file @
7b638984
...
...
@@ -1145,8 +1145,8 @@ checkAndPartitionateDclMacros mod_index range fun_defs e_info=:{ef_is_macro_fun=
=
checkDclMacros
mod_index
cGlobalScope
range
.
ir_from
range
.
ir_to
fun_defs
{
e_info
&
ef_is_macro_fun
=
True
}
heaps
cs
(
e_info
=:{
ef_macro_defs
})
=
{
e_info
&
ef_is_macro_fun
=
ef_is_macro_fun_old
}
#
(
predef_symbols_for_transform
,
cs_predef_symbols
)
=
get_predef_symbols_for_transform
cs_predef_symbols
(
fun_defs
,
macro_defs
,
hp_var_heap
,
hp_expression_heap
,
cs_symbol_table
,
cs_error
)
=
partitionateDclMacros
range
mod_index
predef_symbols_for_transform
fun_defs
ef_macro_defs
hp_var_heap
hp_expression_heap
cs_symbol_table
cs_error
(
macro_defs
,
hp_var_heap
,
hp_expression_heap
,
cs_symbol_table
,
cs_error
)
=
partitionateDclMacros
range
mod_index
predef_symbols_for_transform
ef_macro_defs
hp_var_heap
hp_expression_heap
cs_symbol_table
cs_error
=
(
fun_defs
,
{
e_info
&
ef_macro_defs
=
macro_defs
},
{
heaps
&
hp_var_heap
=
hp_var_heap
,
hp_expression_heap
=
hp_expression_heap
},
{
cs
&
cs_symbol_table
=
cs_symbol_table
,
cs_predef_symbols
=
cs_predef_symbols
,
cs_error
=
cs_error
})
...
...
frontend/transform.dcl
View file @
7b638984
...
...
@@ -8,8 +8,8 @@ import syntax, checksupport
::
PredefSymbolsForTransform
=
{
predef_alias_dummy
::
!
PredefinedSymbol
,
predef_and
::
!
PredefinedSymbol
,
predef_or
::
!
PredefinedSymbol
};
partitionateDclMacros
::
!
IndexRange
!
Index
!
PredefSymbolsForTransform
!*{#
FunDef
}
!*{#*{#
FunDef
}}
!*
VarHeap
!*
ExpressionHeap
!*
SymbolTable
!*
ErrorAdmin
->
(!*{#
FunDef
},!*{#
*{#
FunDef
}},!*
VarHeap
,!*
ExpressionHeap
,!*
SymbolTable
,!*
ErrorAdmin
)
partitionateDclMacros
::
!
IndexRange
!
Index
!
PredefSymbolsForTransform
!*{#*{#
FunDef
}}
!*
VarHeap
!*
ExpressionHeap
!*
SymbolTable
!*
ErrorAdmin
->
(!*{#*{#
FunDef
}},!*
VarHeap
,!*
ExpressionHeap
,!*
SymbolTable
,!*
ErrorAdmin
)
partitionateIclMacros
::
!
IndexRange
!
Index
!
PredefSymbolsForTransform
!*{#
FunDef
}
!*{#*{#
FunDef
}}
!*
VarHeap
!*
ExpressionHeap
!*
SymbolTable
!*
ErrorAdmin
->
(!*{#
FunDef
},!*{#*{#
FunDef
}},!*
VarHeap
,!*
ExpressionHeap
,!*
SymbolTable
,!*
ErrorAdmin
)
...
...
frontend/transform.icl
View file @
7b638984
...
...
@@ -388,9 +388,9 @@ where
unfold
(
Case
case_expr
)
us
#
(
case_expr
,
us
)
=
unfold
case_expr
us
=
(
Case
case_expr
,
us
)
unfold
(
Selection
is_unique
expr
selectors
)
us
unfold
(
Selection
selector_kind
expr
selectors
)
us
#
((
expr
,
selectors
),
us
)
=
unfold
(
expr
,
selectors
)
us
=
(
Selection
is_unique
expr
selectors
,
us
)
=
(
Selection
selector_kind
expr
selectors
,
us
)
unfold
(
Update
expr1
selectors
expr2
)
us
#
(((
expr1
,
expr2
),
selectors
),
us
)
=
unfold
((
expr1
,
expr2
),
selectors
)
us
=
(
Update
expr1
selectors
expr2
,
us
)
...
...
@@ -981,18 +981,18 @@ partitionate_icl_macro mod_index max_fun_nr predef_symbols_for_transform macro_i
->
pi
=
pi
partitionateDclMacros
::
!
IndexRange
!
Index
!
PredefSymbolsForTransform
!*{#
FunDef
}
!*{#*{#
FunDef
}}
!*
VarHeap
!*
ExpressionHeap
!*
SymbolTable
!*
ErrorAdmin
->
(!*{#
FunDef
},!*{#
*{#
FunDef
}},!*
VarHeap
,!*
ExpressionHeap
,!*
SymbolTable
,!*
ErrorAdmin
)
partitionateDclMacros
{
ir_from
,
ir_to
}
mod_index
predef_symbols_for_transform
fun_defs
macro_defs
var_heap
symbol_heap
symbol_table
error
partitionateDclMacros
::
!
IndexRange
!
Index
!
PredefSymbolsForTransform
!*{#*{#
FunDef
}}
!*
VarHeap
!*
ExpressionHeap
!*
SymbolTable
!*
ErrorAdmin
->
(!*{#*{#
FunDef
}},!*
VarHeap
,!*
ExpressionHeap
,!*
SymbolTable
,!*
ErrorAdmin
)
partitionateDclMacros
{
ir_from
,
ir_to
}
mod_index
predef_symbols_for_transform
macro_defs
var_heap
symbol_heap
symbol_table
error
#!
max_fun_nr
=
cMAXINT
#
partitioning_info
=
{
pi_var_heap
=
var_heap
,
pi_symbol_heap
=
symbol_heap
,
pi_symbol_table
=
symbol_table
,
pi_fun_defs
=
fun_defs
,
pi_macro_defs
=
macro_defs
,
pi_symbol_table
=
symbol_table
,
pi_fun_defs
=
{}
,
pi_macro_defs
=
macro_defs
,
pi_error
=
error
,
pi_deps
=
[],
pi_next_num
=
0
,
pi_next_group
=
0
,
pi_groups
=
[],
pi_unexpanded_dcl_macros
=[]
}
{
pi_symbol_table
,
pi_var_heap
,
pi_symbol_heap
,
pi_fun_defs
,
pi_macro_defs
,
pi_error
,
pi_next_group
,
pi_groups
,
pi_deps
}
=
iFoldSt
(
partitionate_dcl_macro
mod_index
max_fun_nr
predef_symbols_for_transform
)
ir_from
ir_to
partitioning_info
(
fun_defs
,
macro_defs
)
=
reset_body_of_rhs_macros
pi_deps
pi_fun_defs
pi_macro_defs
=
(
fun_defs
,
macro_defs
,
pi_var_heap
,
pi_symbol_heap
,
pi_symbol_table
,
pi_error
)
(
_
,
macro_defs
)
=
reset_body_of_rhs_macros
pi_deps
pi_fun_defs
pi_macro_defs
=
(
macro_defs
,
pi_var_heap
,
pi_symbol_heap
,
pi_symbol_table
,
pi_error
)
partitionateIclMacros
::
!
IndexRange
!
Index
!
PredefSymbolsForTransform
!*{#
FunDef
}
!*{#*{#
FunDef
}}
!*
VarHeap
!*
ExpressionHeap
!*
SymbolTable
!*
ErrorAdmin
->
(!*{#
FunDef
},!*{#*{#
FunDef
}},!*
VarHeap
,!*
ExpressionHeap
,!*
SymbolTable
,!*
ErrorAdmin
)
...
...
Write
Preview
Supports
Markdown
0%
Try again
or
attach a new file
.
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment