diff options
author | alimarin | 2001-03-13 15:36:49 +0000 |
---|---|---|
committer | alimarin | 2001-03-13 15:36:49 +0000 |
commit | c3a2cdaad45d3e1536d3b98d89036e549f159530 (patch) | |
tree | 03e6e689e81bca56ad245ff00fc9c17a7bef80b5 /frontend/scanner.icl | |
parent | added 2.0 syntax to type_io.icl (diff) |
Generics are added, but are disabled.
Tested with compiling Object IO and butstrapping.
git-svn-id: https://svn.cs.ru.nl/repos/clean-compiler/trunk@329 1f8540f1-abd5-4d5b-9d24-4c5ce8603e2d
Diffstat (limited to 'frontend/scanner.icl')
-rw-r--r-- | frontend/scanner.icl | 18 |
1 files changed, 17 insertions, 1 deletions
diff --git a/frontend/scanner.icl b/frontend/scanner.icl index d0f3fe7..9ff470f 100644 --- a/frontend/scanner.icl +++ b/frontend/scanner.icl @@ -185,6 +185,11 @@ where | EndOfFileToken // end of file | ErrorToken String // an error has occured + | GenericToken // generic + | GenericOpenToken // {| + | GenericCloseToken // |} + + :: Context = GeneralContext | TypeContext @@ -565,13 +570,21 @@ Scan :: !Char !Input !Context -> (!Token, !Input) Scan '(' input co = (OpenToken, input) Scan ')' input co = (CloseToken, input) Scan '{' input CodeContext = ScanCodeBlock input -Scan '{' input co = (CurlyOpenToken, input) +//Scan '{' input co = (CurlyOpenToken, input) +// AA ... +Scan c0=:'{' input co + # (eof, c1, input) = ReadNormalChar input + | eof = (CurlyOpenToken, input) + | c1 == '|' = (GenericOpenToken, input) + = (CurlyOpenToken, charBack input) +// ... AA Scan '}' input co = (CurlyCloseToken, input) Scan '[' input co = (SquareOpenToken, input) Scan ']' input co = (SquareCloseToken, input) Scan c0=:'|' input co # (eof, c1, input) = ReadNormalChar input | eof = (BarToken, input) + | c1 == '}' = (GenericCloseToken, input) // AA | isSpecialChar c1 = ScanOperator 1 input [c1, c0] co = (BarToken, charBack input) Scan ',' input co = (CommaToken, input) @@ -765,6 +778,7 @@ CheckEveryContext s input "with" -> (WithToken , input) "class" -> (ClassToken , input) "instance" -> (InstanceToken , input) + "generic" -> (GenericToken , input) "otherwise" -> (OtherwiseToken , input) "!" -> (ExclamationToken , input) // "::" -> (DoubleColonToken , input) @@ -1522,6 +1536,8 @@ where toString CurlyCloseToken = "}" toString SquareOpenToken = "[" toString SquareCloseToken = "]" + toString GenericOpenToken = "{|" + toString GenericCloseToken = "|}" toString DotToken = "." toString SemicolonToken = ";" toString ColonToken = ": (ColonToken)" |