diff options
Diffstat (limited to 'src/boot')
-rw-r--r-- | src/boot/parser.boot | 18 | ||||
-rw-r--r-- | src/boot/tokens.boot | 1 |
2 files changed, 14 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() diff --git a/src/boot/tokens.boot b/src/boot/tokens.boot index 53dc38a9..6a98317a 100644 --- a/src/boot/tokens.boot +++ b/src/boot/tokens.boot @@ -208,6 +208,7 @@ for i in [ _ ["lcm", 1] , _ ["STRCONC", '""] , _ ["strconc", '""] , _ + ["CONCAT", '""] , _ ["MAX", -999999] , _ ["MIN", 999999] , _ ["*", 1] , _ |