aboutsummaryrefslogtreecommitdiff
path: root/src/boot/parser.boot
AgeCommit message (Collapse)AuthorFilesLines
2010-12-11 * boot/tokens.boot: `finally' is now a keyword.dos-reis1-5/+5
* boot/parser.boot (bpMissing): Use a BootParserException exception. (bpTrap): Likewise. (bpListAndRecover): Catch them. * boot/parser.boot (shoeOutParse): Likewise. * boot/ast.boot (bfHandlers): Fix thinko. (codeForCatchHandlers): Likewise.
2010-12-11 * boot/parser.boot (bpListAndRecover): Use Lisp-level CATCH.dos-reis1-37/+40
(bpTry): Rewrite. (bpTry): Likewise. (bpSimpleCatch): Remove. (bpPiledCatchItems): Likewise. (bpCatchItemList): Likewise. (bpExceptionHead): Likewise. (bpExceptionTail): Likewise. (bpExceptionVariable): New. (bpFinally): Likewise. * boot/ast.boot (%Ast): Add %Pretend and %Finally. %Catch now takes two arguments. (bfTry): Rewrite. (bfThrow): Likewise. (bfHandlers): New. (codeForCatchHandlers): Likewise. * boot/translator.boot (shoeOutParse): Use Lisp-level CATCH.
2010-07-27 * boot/tokens.boot: quo and rem are now keywords and infix operators.dos-reis1-2/+5
* boot/parser.boot (bpEuclid): New. Parse integer quotient and remainder expressions. (bpMinus): Now build on bpEuclid instead of bpTimes.
2010-05-28 Add support for 'property' builtin function.dos-reis1-1/+4
* 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.
2010-05-22 * interp/cparse.boot (npQuiver): Redefine. Now send Applicationdos-reis1-1/+1
to Application. (npTypedForm): Replace Application with Quiver. (npTypified): Likewise. (npTagged): Use npTypedForm not npTypedForm1. (npDiscrim): Now extend Relation, not Quiver. (npMdef): Allow same LHS as npDef. (npSingleRule): Likewise. * boot/ast.boot: Replace CONCAT with strconc. Replace SYMBOL-NAME with PNAME. * boot/scanner.boot: Likewise. * boot/translator.boot: Likewise.
2010-05-19 * boot/ast.boot: Add %Leave ast node.dos-reis1-1/+1
(bfLeave): New. * boot/parser.boot (bpLeave): Use it.
2010-05-15 * boot/ast.boot (shoeCompTran1): Handle %Leave expressions.dos-reis1-2/+6
* boot/parser.boot (bpReturn): Parse leave-expressions too. * interp/mark.boot (markInsertBodyParts): properly escape Boot keywords.
2010-05-10 Add lambda expression syntax to Boot.dos-reis1-0/+11
* boot/parser.boot (bpLambda): New. * boot/ast.boot (bfLambda): New. * boot/tokens.boot: Add "+->" as token. * interp/cparse.boot: Use lambda expression syntax. * interp/c-util.boot: Likewise.
2010-05-09 * boot/ast.boot: Miscellaneous cleanup.dos-reis1-3/+3
* boot/includer.boot: Likewise. * boot/parser.boot: Likewise. * boot/pile.boot: Likewise. * boot/scanner.boot: Likewise. * boot/translator.boot: Likewise.
2010-05-08 * boot/parser.boot (bpArgumentList): New.dos-reis1-17/+26
(bpParenthesizedApplication): Use it. New. (bpPrimary1): Use it to implement function call with explicit parenthesis as primary. (bpOperator): Remove. (bpAssignLHS): Rework. Allow field path after function call. * boot/translator.boot: Remove debugging statement. * interp/as.boot: Adjust to new syntax. * interp/br-con.boot: Likewise. * interp/br-data.boot: Likewise. * interp/c-doc.boot: Likewise. * interp/category.boot: Likewise. * interp/cattable.boot: Likewise. * interp/define.boot: Likewise. * interp/functor.boot: Likewise. * interp/g-util.boot: Likewise. * interp/interop.boot: Likewise. * interp/nrunopt.boot: Likewise. * interp/pspad1.boot: Likewise. * interp/setvars.boot: Likewise. * interp/trace.boot: Likewise.
2010-05-07 * boot/ast.boot: Miscellaneous cleanup.dos-reis1-8/+8
* boot/includer.boot: Likewise. * boot/parser.boot: Likewise. * boot/pile.boot: Likewise. * boot/scanner.boot: Likewise. * boot/tokens.boot: Likewise. * boot/translator.boot: Likewise.
2010-05-07 * boot/ast.boot: Translate assignment to head and tail of a list.dos-reis1-2/+2
Remove explicit uses of RPLACA and RPLACD. * boot/includer.boot: Likewise. * boot/scanner.boot: Likewise. * boot/translator.boot: Likewise.
2009-09-27 Fix SF/2854105dos-reis1-0/+6
* graph/PS/*.ps: New.
2009-09-25 * boot/ast.boot (bfMember): Improve a bit.dos-reis1-2/+2
* boot/tokens.boot: Don't rename 'is' and 'inst'. * boot/parser.boot: Use 'in' instead of 'MEMQ' where approrpriate. * interp/: Likewise.
2009-09-20 * boot/tokens.boot: "has" is not a keyword.dos-reis1-7/+10
* boot/ast.boot (bfHas): New. (bfReduce): Use "has" instead "has". (bfReduceCollect): Likewise. (bfReName): Likewise. (bfElt): Likewise. (bfSetelt): Likewise. * boot/parser.boot (bpSexpKey): Likewise. (bpPrefixOperator): Likewise. (bpInfixOperator): Likewise. (bpThetaName): Likewise. (bpIs): Parse "has" expressions. * boot/pile.boot (shoePileCoagulate): Likewise. * interp/: Fix unquoted use of "has". * interp/interop.boot (has): Remove.
2009-09-04(no commit message)dos-reis1-404/+369
2009-09-02 * boot/ast.boot: More cleanup.dos-reis1-22/+25
* boot/includer.boot: Likewise. * boot/parser.boot: Likewise. * boot/scanner.boot: Likewise.
2009-08-30 * boot/parser.boot ($sawParenthesizedHead): Remove.dos-reis1-35/+5
(bpReturnType): Likewise. (bpBeginParameterList): Likewise. (bpEndParameterList): Likewise. (bpBeginDefinition): Likewise. (bpDefinition): Adjust. (bpVariable): Likewise.
2009-08-29 * boot/ast.boot (%Definition): Lose one argument.dos-reis1-4/+4
(bfDefinition): Remove. (bfSimpleDefinition): Likewise. (bfCompDef): Likewise. (bfDefSequence): Likewise. (defSheepAndGoats): Tidy. * boot/parser.boot (bpSimpleDefinitionTail): Likewise. (bpCompoundDefinitionTail): Likewise. (bpDefinitionPileItems): Likewise. (bpSemiColonDefinition): Likewise. * boot/translator.boot (translateToplevel): Likewise.
2009-08-29(no commit message)dos-reis1-7/+6
2009-08-29 * boot/ast.boot: More cleanup.dos-reis1-5/+4
* boot/parser.boot: Likewise. * boot/translator.boot: Likewise.
2009-08-29 * boot/translator.boot (bpOutItem): Move to parser.boot.dos-reis1-1/+14
* boot/parser.boot (bpExceptionTail): Fix typo. (bpOutItem): Move from translator.boot.
2009-08-27 * boot/tokens.boot: "namespace" is now a keyword.dos-reis1-1/+8
* boot/ast.boot (%Ast): Add %Namespace branch. * boot/parser.boot (bpNamespace): New. (bpComma): Adjust.
2009-08-19 * boot/ast.boot: Consistently prefix AST names by "%".dos-reis1-6/+6
* boot/translator.boot: Adjust. * boot/parser.boot: Likewise.
2009-05-10 Cope with SBCL-1.0.28 improvements.dos-reis1-2/+2
* boot/translator.boot (translateToplevel): Load imported modules. * boot/ast.boot ($constantIdentifiers): New. ($activeNamespace): Likewise. (bfSimpleDefinition): Likewise. (isDynamicVariable): Likewise. (shoeCompTran1): Tidy. Use it. * boot/parser.boot (bpSimpleDefinitionTail): Use bfSimpleDefinition. * boot/Makefile.in (stage1/%.clisp): Specify load directory. (stage2/%.clisp): Likewise. * lisp/core.lisp.in (startCompileDuration): Export. (endCompileDuration): Likewise.
2008-10-08 Allow compound argument types in Boot signatures.dos-reis1-5/+13
* boot/parser.boot (bpArgtypeList): New. (bpMapping); Use it. * boot/tokens.boot: Define neutral element for CONCAT.
2008-09-22 * boot/parser.boot (bpReturn): Allow assignment.dos-reis1-1/+3
2008-09-07 * boot/parser.boot (bpImport): Invert syntax for importing foreigndos-reis1-2/+6
functions. * boot/strap/parser.clisp: Update. * interp/sys-os.boot: Change to new syntax throughout.
2008-08-02 * boot/parser.boot (bpTerm): Term forms depend on the kind ofdos-reis1-6/+17
variable. (bpTypeItem): New. (bpTypeItemList): Use it. (bpTypeAliasDefition): Tidy. (bpCaseItem): Accept wildchars in pattern terms. * boot/ast.boot (bfCompDef): Don't name unused pattern variables. (bfSmintable): A character compares EQL. (bfCI): Ignore wildcard pattern variables. * boot/strap: Update cached Lisp translation.
2008-07-23Misc cleanup.dos-reis1-4/+40
2008-05-19 * boot/ast.boot: Cleanup.dos-reis1-49/+49
* boot/includer.boot: Likewise. * boot/parser.boot: Likewise. * boot/pile.boot: Likewise. * boot/scanner.boot: Likewise. * boot/tokens.boot: Likewise. * boot/translator.boot: Likewise.
2008-05-08 * boot/translator.boot (translateToplevel): Split out of bpOutItem.dos-reis1-1/+1
(maybeExportDecl): New.
2008-05-08 * boot/translator.boot (bpOutItem): Handle namespace declaration.dos-reis1-3/+2
Update all boot files to use `namespace' instead of `)package'. * interp/: Likewise.
2008-04-30 * boot/parser.boot (bpExportItemList): New.dos-reis1-2/+17
(bpExports): Likewise. (bpModule): Use it. * boot/ast.boot (bfCreateDef): Tidy. * boot/strap: Update cached Lisp translation.
2008-04-23 * boot/ast.boot: Tidy.dos-reis1-19/+11
* boot/includer.boot: Likewise. * boot/parser.boot: Likewise. * boot/pile.boot: Likewise. * boot/scanner.boot: Likewise. * boot/tokens.boot: Likewise. * boot/translator.boot: Likewise. * boot/strap: Update Lisp translation. * lisp/core.lisp.in: Tidy.
2008-04-19 * boot/ast.boot (%DefaultValue): New %Ast node.dos-reis1-10/+21
(bfParameterList): New. (bfInsertLet): Use it. (bfInsertLet1): Handle parameter with default values. * boot/parser.boot (bpRegularBVItemTail): Split from bpRegularBVItem. (bpRegularBVItem): Tidy.
2008-04-09 * boot/translator.boot (bpOutItem): Tidy.dos-reis1-2/+2
* boot/parser.boot (bpTypeAliasDefition): Support parameterized alias. * boot/ast.boot (quote): New. (backquote): Likewise. (genTypeAlias): Likewise.
2008-03-16 * lisp/Makefile.in (void_type): New.dos-reis1-2/+3
(char_type): Likewise. (int_type): Likewise. (float_type): Likewise. (double_type): Likewise. (string_type): Likewise. (pointer_type): Likewise. (edit): Use them. * interp/wi1.boot (ppFull): Tidy. Don't set *PRINT-DEPTH*. * interp/vmlisp.lisp (gcmsg): Define when SBCL. * interp/template.boot (measureCommon): Fix thinko. * interp/sys-utility.boot: Move basic type definition from g-util.boot to here. * interp/g-util.boot (augProplistOf): Fix signature declaration. * interp/daase.lisp: Tidy. * interp/c-util.boot (displayComp): Remove assignment to $X,$M,$F. * interp/boot-pkg.lisp: Tidy. * interp/axext_l.lisp: Likewise. * interp/Makefile.pamphlet (makeint.lisp): Call GBC only when GCL. ($(axiom_targetdir)/algebra/exposed.$(FASLEXT)): Tidy. (patches.$(FASLEXT)): Require debug.$(FASLEXT), g-timer.$(FASLEXT). (wi2.$(FASLEXT)): Require define.$(FASLEXT). (spad.$(FASLEXT)): Require postpar.$(FASLEXT), debug.$(FASLEXT). * boot/translator.boot (genImportDeclaration): Include translation for SBCL. * boot/parser.boot (bpMapping): Tidy. * boot/ast.boot (coreSymbol): New. (bootSymbol): Likewise. (bootSymbol): Likewise. * lisp/core.lisp.in (|$NativeTypeTable|): New. Export. * algebra/Makefile.pamphlet (COMPILE_LISP): Use $(INTERPSYS). * algebra/exposed.lsp.pamphlet: Tidy.
2008-02-15Tidy src/bootdos-reis1-3/+3
2008-02-15 * boot/parser.boot (bpSimpleCatch): New.dos-reis1-2/+8
(bTry): Use it. * boot/strap: Update.
2008-02-15 Add try/catch to Boot.dos-reis1-19/+51
* boot/tokens.boot (shoeKeyWords): Add new keywords. * boot/ast.boot (Ast): Include three new nodes. (bfTry): New. (bfThrow): Likewise. * boot/parser.boot ($bodyHasReturn): Remove. (bpNoteReturnStmt): Likewise. (bpThrow): New. (bpTry): Likewise. (bpPiledCatchItems): Likewise. (bpCatchItemList): Likewise. (bpExceptionHead): Likewise. (bpExceptionTail): Likewise. (bpException): Likewise. (bpCatchItem): Likewise. (bpReturn): Include `throw' expressions. (bpStatement): Include `try' expressions. * interp/macros.lisp (|tryLine|): Rename from |try|. * interp/pspad1.boot: Replace `try' with `tryLine' throughout.
2008-01-28 Support signature declaration in Boot.dos-reis1-1/+11
* boot/ast.boot (bfUntuple): New. (bfTagged): Toplevel tags are signatures. * boot/parser.boot (bpTyping): New. (bpTagged): Use it. * boot/translator.boot (genDeclaration): New. (bpOutItem): Use it. * interp/compiler.boot: Add type annotations for compiler routines. * lisp/Makefile.in ($(OUT)/lisp$(EXEEXT)): Don't turn on emit-fn.
2008-01-28 * boot/Makefile.pamphlet: Remove.dos-reis1-0/+1041
* boot/translator.boot: New. * boot/translator.boot: Remove. * boot/tokens.boot: New. * boot/tokens.boot.pamphlet: Remove. * boot/scanner.boot: New. * boot/scanner.boot.pamphlet: Remove. * boot/pile.boot: New. * boot/pile.boot.pamphlet: Remove. * boot/parser.boot: New. * boot/parser.boot.pamphlet: New. * boot/initial-env.lisp: New. * boot/initial-env.lisp.pamphlet: Remove. * boot/includer.boot: New. * boot/includer.boot.pamphlet: Remove. * boot/ast.boot: New. * boot/ast.boot.pamphlet: Remove.