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
edc0429e
Commit
edc0429e
authored
Oct 13, 1999
by
Pieter Koopman
Browse files
cases in lets fixed
parent
48211525
Changes
2
Hide whitespace changes
Inline
Side-by-side
frontend/parse.icl
View file @
edc0429e
...
...
@@ -31,7 +31,6 @@ is_record_update updates
// ... RWS
// Sjaak
/*
Parser for Clean 2.0
...
...
@@ -1697,7 +1696,7 @@ wantRhsExpressionT token pState
|
succ
#
(
exprs
,
pState
)
=
parseList
trySimpleRhsExpression
pState
=
(
combineExpressions
expr
exprs
,
pState
)
=
(
PE_Empty
,
parseError
"RHS expression"
(
Yes
token
)
"<expression>"
pState
)
=
(
PE_Empty
,
parseError
"RHS expression"
(
Yes
token
)
"<expression>
**
"
pState
)
wantLhsExpressionT
::
!
Token
!
ParseState
->
(!
ParsedExpr
,
!
ParseState
)
wantLhsExpressionT
token
pState
...
...
@@ -1765,7 +1764,7 @@ where
wantSelectors
::
Token
*
ParseState
->
*(![
ParsedSelection
],
!*
ParseState
)
wantSelectors
token
pState
#
(
selector
,
pState
)
=
want_selector
token
pState
(
token
,
pState
)
=
nextToken
FunctionContext
pState
(
token
,
pState
)
=
nextToken
FunctionContext
pState
|
token
==
DotToken
#
(
token
,
pState
)
=
nextToken
FunctionContext
pState
(
selectors
,
pState
)
=
wantSelectors
token
pState
...
...
@@ -2085,6 +2084,7 @@ where
{
nu_selectors
::
![
ParsedSelection
]
,
nu_update_expr
::
!
ParsedExpr
}
errorIdent
::
Ident
errorIdent
=
{
id_name
=
"<<error>>"
,
id_info
=
nilPtr
}
...
...
@@ -2515,6 +2515,7 @@ wantEndGroup msg pState
|
ss_useLayout
=
case
token
of
EndGroupToken
->
pState
InToken
->
tokenBack
pState
_
->
parseError
msg
(
Yes
token
)
"end of group with layout"
pState
// ~ ss_useLayout
|
token
==
CurlyCloseToken
...
...
@@ -2569,6 +2570,7 @@ wantEndLocals pState
|
ss_useLayout
=
case
token
of
EndGroupToken
->
pState
InToken
->
tokenBack
pState
// For let expressions with cases
_
->
parseError
"local definitions"
(
Yes
token
)
"end of locals with layout"
pState
// ~ ss_useLayout
|
token
==
CurlyCloseToken
...
...
@@ -2593,6 +2595,7 @@ wantEndCase pState
SemicolonToken
->
tokenBack
(
appScanState
dropOffsidePosition
pState
)
CommaToken
->
tokenBack
(
appScanState
dropOffsidePosition
pState
)
ColonToken
->
tokenBack
(
appScanState
dropOffsidePosition
pState
)
InToken
->
tokenBack
(
appScanState
dropOffsidePosition
pState
)
_
->
parseError
"case expression"
(
Yes
token
)
"end of case with layout"
pState
// ~ ss_useLayout
|
token
==
CurlyCloseToken
...
...
frontend/scanner.icl
View file @
edc0429e
...
...
@@ -1375,7 +1375,8 @@ checkOffside pos token scanState=:{ss_offsides,ss_useLayout,ss_input}
=
(
newToken
,
scanState
)
// -->> ("new offsides",new_offsides)
=
gen_end_groups
(
dec
n
)
scanState
|
token
==
InToken
#
scanState
=
tokenBack
{
scanState
&
ss_offsides
=
tl
ss_offsides
}
=
(
token
,
{
scanState
&
ss_offsides
=
tl
ss_offsides
})
/* # scanState = tokenBack { scanState & ss_offsides = tl ss_offsides }
newToken = EndGroupToken
= ( newToken
, { scanState
...
...
@@ -1389,7 +1390,7 @@ checkOffside pos token scanState=:{ss_offsides,ss_useLayout,ss_input}
scanState.ss_tokenBuffer
}
) -->> (token,"EndGroupToken generated: in",pos,ss_offsides)
// otherwise
*/
// otherwise
=
newOffside
token
scanState
where
newOffside
token
scanState
=:{
ss_offsides
}
...
...
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