Skip to content
GitLab
Menu
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
5f86d828
Commit
5f86d828
authored
Dec 10, 1999
by
Martin Wierich
Browse files
bugfixes
parent
5d8b7e50
Changes
6
Expand all
Hide whitespace changes
Inline
Side-by-side
frontend/check.icl
View file @
5f86d828
This diff is collapsed.
Click to expand it.
frontend/checksupport.dcl
View file @
5f86d828
...
...
@@ -116,7 +116,6 @@ instance toInt STE_Kind
instance
<<<
STE_Kind
instance
<<<
IdentPos
// MW..
retrieveAndRemoveImportsFromSymbolTable
::
![(.
a
,.
Declarations
)]
[
Declaration
]
*(
Heap
SymbolTableEntry
)
->
([
Declaration
],.
Heap
SymbolTableEntry
);
retrieveAndRemoveImportsOfModuleFromSymbolTable
::
![.
Declaration
]
![.
Declaration
]
![.
Declaration
]
!*(
Heap
SymbolTableEntry
)
->
([
Declaration
],.
Heap
SymbolTableEntry
);
addLocalFunctionDefsToSymbolTable
::
Level
Index
.
Index
u
:(
a
FunDef
)
*
SymbolTable
*
ErrorAdmin
->
(
v
:(
a
FunDef
),.
SymbolTable
,.
ErrorAdmin
)
|
Array
.
a
,
[
u
<=
v
];
...
...
@@ -133,4 +132,3 @@ removeDeclarationsFromSymbolTable :: ![Declaration] !Int !*(Heap SymbolTableEntr
removeLocalIdentsFromSymbolTable
::
.
Int
!.[
Ident
]
!*(
Heap
SymbolTableEntry
)
->
.
Heap
SymbolTableEntry
;
removeLocalsFromSymbolTable
::
.
Level
.[
Ident
]
LocalDefs
u
:(
a
b
)
*(
Heap
SymbolTableEntry
)
->
(
v
:(
a
b
),.
Heap
SymbolTableEntry
)
|
Array
.
a
&
select_u
,
toIdent
b
,
[
u
<=
v
];
removeIdentFromSymbolTable
::
!.
Int
!
Ident
!*(
Heap
SymbolTableEntry
)
->
.
Heap
SymbolTableEntry
;
// ..MW
\ No newline at end of file
frontend/checksupport.icl
View file @
5f86d828
...
...
@@ -335,7 +335,6 @@ where
remove_field
field_mod
field_index
[]
=
[]
removeDeclarationsFromSymbolTable
::
![
Declaration
]
!
Int
!*(
Heap
SymbolTableEntry
)
->
*
Heap
SymbolTableEntry
;
removeDeclarationsFromSymbolTable
decls
scope
symbol_table
=
foldSt
(
remove_declaration
scope
)
decls
symbol_table
...
...
@@ -344,15 +343,19 @@ where
#!
entry
=
sreadPtr
id_info
symbol_table
#
{
ste_kind
,
ste_previous
}
=
entry
=
case
ste_kind
of
STE_Field
field_id
#
symbol_table
=
removeFieldFromSelectorDefinition
field_id
NoIndex
dcl_index
symbol_table
|
ste_previous
.
ste_def_level
==
scope
->
symbol_table
<:=
(
id_info
,
ste_previous
.
ste_previous
)
->
symbol_table
<:=
(
id_info
,
ste_previous
)
_
|
ste_previous
.
ste_def_level
==
scope
->
symbol_table
<:=
(
id_info
,
ste_previous
.
ste_previous
)
->
symbol_table
<:=
(
id_info
,
ste_previous
)
STE_Field
field_id
#
symbol_table
=
removeFieldFromSelectorDefinition
field_id
NoIndex
dcl_index
symbol_table
|
ste_previous
.
ste_def_level
==
scope
->
symbol_table
<:=
(
id_info
,
ste_previous
.
ste_previous
)
->
symbol_table
<:=
(
id_info
,
ste_previous
)
// MW..
STE_Empty
->
symbol_table
// ..MW
_
|
ste_previous
.
ste_def_level
==
scope
->
symbol_table
<:=
(
id_info
,
ste_previous
.
ste_previous
)
->
symbol_table
<:=
(
id_info
,
ste_previous
)
removeLocalIdentsFromSymbolTable
::
.
Int
!.[
Ident
]
!*(
Heap
SymbolTableEntry
)
->
.
Heap
SymbolTableEntry
;
...
...
frontend/syntax.icl
View file @
5f86d828
...
...
@@ -1109,7 +1109,6 @@ instance needs_brackets a
where
needs_brackets
_
=
False
instance
<<<
BasicType
where
(<<<)
file
BT_Int
=
file
<<<
"Int"
...
...
@@ -1332,7 +1331,7 @@ where
(<<<)
file
(
App
{
app_symb
,
app_args
})
=
file
<<<
app_symb
<<<
' '
<<<
app_args
(<<<)
file
(
f_exp
@
a_exp
)
=
file
<<<
'('
<<<
f_exp
<<<
" @ "
<<<
a_exp
<<<
')'
(<<<)
file
(
Let
{
let_info_ptr
,
let_binds
,
let_expr
})
=
write_binds
(
file
<<<
"let
"
<<<
ptrToInt
let_info_ptr
<<<
'\n'
)
let_binds
<<<
"in
\n
"
<<<
let_expr
(<<<)
file
(
Let
{
let_info_ptr
,
let_binds
,
let_expr
})
=
write_binds
(
file
<<<
"let
"
<<<
'\n'
)
let_binds
<<<
"in
\n
"
<<<
let_expr
where
write_binds
file
[]
=
file
...
...
frontend/typesupport.dcl
View file @
5f86d828
...
...
@@ -5,7 +5,7 @@ import checksupport, StdCompare
from
unitype
import
Coercions
,
CoercionTree
,
AttributePartition
// MW: this switch is used to en(dis)able the fusion algorithm
SwitchFusion
fuse
dont_fuse
:==
dont_
fuse
SwitchFusion
fuse
dont_fuse
:==
fuse
errorHeading
::
!
String
!*
ErrorAdmin
->
*
ErrorAdmin
...
...
frontend/typesupport.icl
View file @
5f86d828
...
...
@@ -4,7 +4,7 @@ import StdEnv, StdCompare
import
syntax
,
parse
,
check
,
unitype
,
utilities
// , RWSDebug
// MW: this switch is used to en(dis)able the fusion algorithm
SwitchFusion
fuse
dont_fuse
:==
dont_
fuse
SwitchFusion
fuse
dont_fuse
:==
fuse
::
Store
:==
Int
...
...
Write
Preview
Supports
Markdown
0%
Try again
or
attach a new file
.
Attach a 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