aboutsummaryrefslogtreecommitdiff
path: root/src/boot/parser.boot
diff options
context:
space:
mode:
authordos-reis <gdr@axiomatics.org>2008-10-08 22:18:38 +0000
committerdos-reis <gdr@axiomatics.org>2008-10-08 22:18:38 +0000
commit1fdd3d6b44f1eececda6e23e7f044d911bb9a8eb (patch)
tree82052b4f8d4aaecbaddac9d7705e850bcfb43265 /src/boot/parser.boot
parent2a99c68c951cc35192d8f0fe733f0c7ff0b7d31c (diff)
downloadopen-axiom-1fdd3d6b44f1eececda6e23e7f044d911bb9a8eb.tar.gz
Allow compound argument types in Boot signatures.
* boot/parser.boot (bpArgtypeList): New. (bpMapping); Use it. * boot/tokens.boot: Define neutral element for CONCAT.
Diffstat (limited to 'src/boot/parser.boot')
-rw-r--r--src/boot/parser.boot18
1 files changed, 13 insertions, 5 deletions
diff --git a/src/boot/parser.boot b/src/boot/parser.boot
index 2ad0bac5..b881ffe2 100644
--- a/src/boot/parser.boot
+++ b/src/boot/parser.boot
@@ -458,8 +458,8 @@ bpModule() ==
++ Parse a module import, or a import declaration for a foreign entity.
++ Import:
-++ IMPORT Name for Signature
-++ IMPORT QUOTE String
+++ IMPORT Signature FOR Name
+++ IMPORT Name
bpImport() ==
bpEqKey "IMPORT" =>
a := bpState()
@@ -498,12 +498,20 @@ bpSimpleMapping() ==
true
false
+++ ArgtypeList:
+++ ( ArgtypeSequence )
+++ ArgtypeSequence:
+++ Application
+++ Application , ArgtypeSequence
+bpArgtypeList() ==
+ bpTuple function bpApplication
+
++ Parse a mapping expression
++ Mapping:
-++ (IdList) -> Application
-++ SimpleMapping
+++ ArgtypeList -> Application
+++ SimpleMapping
bpMapping() ==
- bpParenthesized function bpIdList and
+ bpParenthesized function bpArgtypeList and
bpEqKey "ARROW" and bpApplication() and
bpPush Mapping(bpPop1(), bfUntuple bpPop1())
or bpSimpleMapping()