diff options
author | dos-reis <gdr@axiomatics.org> | 2010-05-28 14:12:41 +0000 |
---|---|---|
committer | dos-reis <gdr@axiomatics.org> | 2010-05-28 14:12:41 +0000 |
commit | 460eba8d1a5ea8feef28282e70ba2d22fa1fcdc6 (patch) | |
tree | ddd3aed51b69201221c396bf9e11465c8fb782bb /src/boot/parser.boot | |
parent | af089a02e32f424463e93e147b60222de0839f1e (diff) | |
download | open-axiom-460eba8d1a5ea8feef28282e70ba2d22fa1fcdc6.tar.gz |
Add support for 'property' builtin function.
* interp/g-timer.boot: Rename property to prop to avoid conflict.
* boot/parser.boot (bpAssignLHS): Allow functional places to
assign to.
* boot/ast.boot (bfPlace): New.
(bfAssign): Handle %Place forms.
* boot/tokens.boot: property is now translated to GET.
Diffstat (limited to 'src/boot/parser.boot')
-rw-r--r-- | src/boot/parser.boot | 5 |
1 files changed, 4 insertions, 1 deletions
diff --git a/src/boot/parser.boot b/src/boot/parser.boot index 909568b9..107a355f 100644 --- a/src/boot/parser.boot +++ b/src/boot/parser.boot @@ -1079,7 +1079,10 @@ bpAssignLHS()== bpEqKey "COLON" => -- variable declaration bpApplication() or bpTrap() bpPush bfLocal(bpPop2(),bpPop1()) - bpArgumentList() and (bpEqPeek "DOT" or bpTrap()) + bpArgumentList() and + (bpEqPeek "DOT" + or (bpEqPeek "BEC" and bpPush bfPlace bpPop1()) + or bpTrap()) bpEqKey "DOT" => -- field path bpList(function bpPrimary,"DOT") and bpChecknull() and |