aboutsummaryrefslogtreecommitdiff
path: root/src/boot/strap/parser.clisp
AgeCommit message (Collapse)AuthorFilesLines
2022-08-21Boot parser: Remove useless AST functions (#17)Gabriel Dos Reis1-5/+5
A couple of the Boot AST building functions are identity functions. Remove to reduce obfuscation.
2018-01-01Name bracket pattern parserGabriel Dos Reis1-18/+54
and update the boot translator Lisp cache.
2015-12-24Translate apply(f,[args]) as FUNCALL(f,args)Gabriel Dos Reis1-23/+20
2013-06-20Allow inerts in Boot.dos-reis1-1/+8
2013-06-15 * interp/nruncomp.boot (NRTsetVector4Part1): Add environment parameter.dos-reis1-2/+2
Adjust caller. (NRTsetVector4a): Likewise. Avoid special variable for environment. * boot/utility.boot: Add and export substSource, substTarget. * interp/define.boot: Use them.
2013-06-01Support --output in compiler, for bootstrapping stage.dos-reis1-2/+2
2013-05-26Rename MAKE-FILENAME to makeFilename and re-implement in Boot.dos-reis1-2/+2
2012-06-10 * interp/preparse.lisp: Remove.dos-reis1-3/+3
* interp/spad-parser.boot: Do not include. Import lexing instead. * interp/Makefile.in: Adjust.
2012-06-03 * interp/lexing.boot (%Line): Now a record structure.dos-reis1-3/+4
* boot/parser.boot (bpTypeName): Split out of bpTypeAliasDefinition. (bpStruct): Use it. Support parameterized structures. * boot/ast.boot (ctorName): New. (bfEnum): Use it for parameterized enums. (bfRecord): Use it for parameterized records.
2012-06-03 * boot/parser.boot (bpSignatureTail): Split out of bpSignature.dos-reis1-37/+24
(bpTyped): Use it. (bpThrow): Lilkewise. (bpRegularBVItemTail): Likewise. (bpAssignLHS): Likewise. (bpStoreName): Do not reference $typings. * boot/ast.boot (%Ast): Remove %Pretend variant. (bfSignature): Rename from bfLocal. Build %Signature variant. (bfLET1): Handle assignment to typed variable. (shoeCompTran): Do not reference $typings. (shoeCompTran1): Do not translate assignment to typed variables. (bindFluidVars): Handle them here. (bfTagged): Remove. (bfTry): Tidy. * boot/translator.boot (shoeOutParse): Do not reference $typings and $returns. * interp/c-util.boot (isAlmostSimple): Initialize $assignmentList.
2012-06-01 * boot/ast.boot (%LoadUnit): Add field for enclosing function.dos-reis1-38/+41
Remove references to $op.
2012-06-01 * boot/ast.boot (%LoadUnit): Add fields for side conditions.dos-reis1-3/+5
* boot/parser.boot: Adjust.
2012-05-31 * boot/ast.boot: Add a %LoadUnit parameter to most functions.dos-reis1-59/+71
Adjust callers. * boot/translator.boot: Tidy.
2012-05-30 * boot/parser.boot: Replace references to $ttok.dos-reis1-43/+37
2012-05-30 * boot/parser.boot (%ParserState): Add field for current token.dos-reis1-90/+118
Replace references to $stok.
2012-05-30 * boot/ast.boot (bfSpecificErrorHere): New.dos-reis1-56/+70
(bfISReverse) Use it. Don't use bpTrap. (bfIS1): Likewise. (bfParameterList): Likewise. (bfHandlers): Likewise. * boot/parser.boot (bpTrap): Take a parser state argument. Adjust callers.
2012-05-30 * boot/parser.boot: Remove references to $bpCount.dos-reis1-38/+40
* boot/translator.boot (shoeOutParse): Likewise.
2012-05-30 * boot/parser.boot: Remove references to $bpParentCount.dos-reis1-14/+21
* boot/translator.boot (shoeOutParse): Likewise.
2012-05-30 * boot/parser.boot: Remove references to $stack.dos-reis1-63/+69
* boot/translator.boot: Likewise.
2012-05-30 * boot/parser.boot: Add parser state argument to more functions.dos-reis1-311/+359
Remove references to $inputStream. * boot/translator.boot (shoeOutParse): Remove $inputStream.
2012-05-29 * boot/parser.boot (%ParserState): New.dos-reis1-512/+619
(makeParserState): Likewise. (%Translator): Likewise. (makeTranslator): Likewise. Make all parsing functions take a parser state argument. * boot/translator.boot (shoeOutParse): Adjust. * interp/spad-parser.boot (stringPrefix?): Remove redudant definition.
2012-05-24 * boot/tokens.boot: "@" is now a new keyword.dos-reis1-6/+10
* boot/ast.boot (bfRestrict): New. (bpTyped): Rename from bpTagged. Accept type restriction. * boot/utility.boot (drop): Restrict the result to a %List.
2012-05-23 * boot/tokens.boot (%Token): New datatype.dos-reis1-34/+31
(makeToken): New. * boot/includer.boot: Use %token accessors. * boot/parser.boot: Likewise. * boot/pile.boot: Likewise. * boot/scanner.boot: Likewise. * boot/utility.boot: Export subString.
2012-05-22 * boot/translator.boot (translateToplevel): Handle record structures.dos-reis1-2/+33
* boot/tokens.boot: "with" is now a keyword in Boot. * boot/parser.boot (bpSignature): The typing is required afte the colong. (bpFieldList): New. (bpGlobalAccessors): Likewise. (bpAccessorDefinitionList): Likewise. (bpAccessorDefinition): Likewise. (bpFieldSection): Likewise. (bpSelectField): Likewise. (bpRecord): Likewise. (bpStruct): Use it to implement record structures. * boot/ast.boot (%Ast): Add %Record and %AccessorDef. (bfRecordDef): New.
2012-05-22 * boot/ast.boot (needsPROG): Remove.dos-reis1-359/+326
(shoePROG): Likewise. (declareLocalVars): New. (maybeAddBlock): Likewise. (hasReturn?): Likewise. (shoeCompTran): Tidy.
2012-05-20 * boot/ast.boot (shoeCompTran): Simplify.dos-reis1-43/+45
(shoeCompTran1): Partially defer translation of fluid variable definition. (bindFluidVars!): New. Complete translation. (groupFluidVars): New. * interp/newfort.boot (fortFormatIntrinsics): Remove redundant return.
2012-05-20 * boot/ast.boot (shoeCompTran1): Take variable sets by reference.dos-reis1-23/+23
Remove globals. Adjust caller. (shoeCompTran): Replace fluid variables by references.
2012-01-12 * boot/parser.boot (bpFunction): New.dos-reis1-2/+6
(bpConstTok): Include it. * boot/ast.boot (bfFunction): New. * boot/tokens.boot: `function' is now a keyword.
2012-01-09 * boot/parser.boot (bpRequire): New. Use it throughout this module.dos-reis1-84/+74
2011-12-28 * interp/vmlisp.lisp (SORTBY): Remove.dos-reis1-0/+5
(QSORT): Likewise. * interp/c-util.boot (formal?): Rename from isFormal. Avoid POSITION. * interp/sys-utility.boot (sortBy): New. * interp/br-op1.boot: Use it. * interp/clam.boot: Likewise. * interp/define.boot: Likewise. * interp/i-output.boot: Likewise. * interp/i-coerfn.boot: Likewise. * interp/i-syscmd.boot: Likewise. * interp/showimp.boot: Likewise. * boot/tokens.boot: "<-" is now a token. * boot/ast.boot (bfKeyArg): New. (bfExpandKeys): Likewise. (bfApplication): Use it. * boot/parser.boot (bpKeyArg): New. (bpAssign): Use it. Parse named arguments.
2011-12-10 * boot/parser.boot (bpArgtypeList): Accept mapping types.dos-reis1-1/+1
* boot/ast.boot (bfType): New. * boot/translator.boot (genDeclaration): Use it. * boot/utility.boot (every?): New. Export. (any?): Likewise. (takeWhile): Lilkewise.
2011-10-21 Workaround proclamation bug in GCLdos-reis1-1/+21
* boot/utility.boot (firstNonblankPosition): Do not declare.
2011-10-01 * boot/parser.boot (bpImport): Accept long names for used namespaces.dos-reis1-9/+13
* boot/translator.boot (packageBody): Tidy. (translateToplevel): Likewise. (getIntermediateLispFile): Likewise. * interp/sys-os.boot: Import System.Foreign.
2011-10-01 * boot/utility.boot: Define BOOTTRAN namespace.dos-reis1-3/+3
(setUnion): New. (setDifference): New. * boot/translator.boot (packageBody): New. (translateToplevel): Use it. Translate namespace definition. * boot/tokens.boot: Replace bitmask with bitref. Do not translate setDifference and setUnion. * boot/parser.boot (bpDef): Now include namespace definition. (bpComma): Remove namespace rule as subsumed by Where rule. * boot/Makefile.in: Remove dependencies on initial-env.lisp. (AXIOM_LOCAL_LISP_sources): Remove as unused, (boot_sources): Remove as redundant with boot_SOURCES. * boot/initial-env.lisp: Remove.
2011-09-30 * boot/ast.boot (bfFor): Tidy. Handle hashtable iterator forms.dos-reis1-682/+612
(bfIterateTable): New. (separateIterators): Likewise. (bfExpandTableIters): Likewise. (bfLp1): Use them.
2011-08-05cleanupdos-reis1-1/+1
2011-06-05 * boot/ast.boot: Remove debugging statement.dos-reis1-1/+1
* driver/Makefile.in (open-axiom$(EXEEXT)): Link statically.
2011-05-18 * boot/translator.boot: Remove bindings of $GenVarCounter.dos-reis1-2/+3
* boot/parser.boot (bpOutItem): Bind it here.
2011-05-16 * boot/ast.boot (bfAtScope): New.dos-reis1-3/+7
* boot/parser.boot (bpDo): Accept scoped expressions. * boot/translator.boot: Cleanup.
2011-05-16 * boot/tokens.boot: "do" is now a keyword.dos-reis1-1/+5
* boot/ast.boot (bfDo): New. * boot/parser.boot (bpDo): New. (bpReturn): Include do-expressions. * interp/vmlisp.lisp (do): Remove.
2011-05-15 * boot/ast.boot (shoeCompTran1): Don't indiscriminately walk CASEdos-reis1-5/+6
forms. Translate %Namespace forms too. * boot/parser.boot (bpApplication): Include Namespace too.
2011-05-14Remove recently introduced bpNamedScopedos-reis1-10/+5
2011-05-14 * boot/parser.boot (bpNamedScope): New.dos-reis1-4/+9
(bpApplication): Call it.
2011-05-02 * boot/ast.boot (idList?, charList?, stringLits?): New.dos-reis1-8/+0
(bfMember): Use them for special cases. * boot/parser.boot (bpDefinition): Stop support MDEF forms. (bpMdef, bpMDefTail): Remove. * boot/tokens.boot: "==>" is no longer a token.
2011-05-02 * boot/parser.boot (bpDefinition): Accept macro definitiondos-reis1-16/+21
starting with the keyword "MACRO". * boot/translator.boot (exportNames): Export them in all evaluation contexts. * interp/c-util.boot: "macro" is now a keyword. * interp/define.boot: Likewise. * interp/g-util.boot: Likewise. * interp/i-syscmd.boot: Likewise. * interp/postpar.boot: Likewise.
2011-05-01 * boot/tokens.boot: Don't rename append.dos-reis1-9/+15
* boot/parser.boot (bpTyping): Support universally quantified types. * boot/ast.boot: Rewrite APPEND as append. (%Forall): New AST node. * boot/translator.boot: Translate it.
2011-04-25 * boot/translator.boot (inAllContexts): New.dos-reis1-8/+11
(translateToplevel): Use it. * boot/parser.boot (bpImport): Accept namespace import.
2011-04-24 * boot/ast.boot (bfMakeCollectInsn): New.dos-reis1-35/+31
(bfDoCollect): Tidy.
2011-04-23 * lisp/core.lisp.in: Export basic types and compiler data types.dos-reis1-16/+9
* interp/modemap.boot (knownInfo): Fix latent bug uncovered by type declarations. * boot/ast.boot: Remove type definitions. (bfIN): Handle DOT as loop variable. (bfON): Likewise. Allow a loop variable to iterator over its own tails. * boot/parser.boot (bfTyping): Simplify. (bpSimpleMapping): Fix thinko.
2011-04-21 * boot/tokens.boot: Don't rename nreverse.dos-reis1-7/+7
* boot/utility.boot (reverse!): Define. * boot/parser.boot: Use reverse! instead of NREVERSE. * boot/ast.boot: Generate reverse! forms instead of NREVERSE.