aboutsummaryrefslogtreecommitdiff
path: root/src/interp/spad-parser.boot
AgeCommit message (Collapse)AuthorFilesLines
2013-05-29Simplify final backend instruction emission.dos-reis1-2/+1
2013-05-29Misc cleanups.dos-reis1-1/+2
2013-05-10The compiler now accepts do-statementsdos-reis1-6/+17
2012-08-26 * interp/debug.lisp: Remove reference to TOK and CHR.dos-reis1-1/+0
* interp/spad-parser.boot: Likewise. * interp/g-error.boot: Likewise. * interp/sys-globals.boot: Likewise. * interp/br-saturn.boot: Replace TERSYSCOMAND by terminateSystemCommand. * interp/i-syscmd.boot: Likewise. (terminateSystemCommand): Simplify. * interp/spad.lisp (TERSYSCOMMAND): Remove.
2012-08-20 * interp/spad.lisp (SPAD): Remove obfuscated binding of OUT-STREAM.dos-reis1-1/+1
* interp/spad-parser.boot (paarseEcho): Use $OutputStream in lieu of OUT-STREAM. * interp/server.boot (serverReadLine): Do not bind IN-STEEAM and *EOF*. Tidy. * interp/lexing.boot (IN-TREAM): Remove definition. (OUT-STREAM): Likewise. * interp/int-top.boot (runspad): Do not bind IN-STREAM and *EOF*. (SpadInterpretStream): Remove $shoeReadLineFunction binding. * interp/debug.lisp: Replace IN-STREAM with $InputStream and OUT-STREAM with $OutputStream.
2012-06-10 * interp/io.boot (%SourceLine): New.dos-reis1-11/+4
(%LoadUnit): Likewise. (readLoadUnitSource): Likewise. (%Reader): Remove input stream field. Include load unit and next lines fields. Adjust users.
2012-06-10 * interp/newaux.lisp (MAKEOP): Move to spad-parser.boot.dos-reis1-1/+35
Remove file. * interp/Makefile.in: Adjust.
2012-06-10 * interp/newaux.lisp: Move Led property setting to spad-parser.boot.dos-reis1-0/+56
2012-06-10 * interp/newaux.lisp: Move Nud property setting to spad-parser.boot.dos-reis1-2/+43
Import sys-utility. * interp/Makefile.in: Adjust.
2012-06-10 * interp/spad-parser.boot: Fix thinkos from previous commit.dos-reis1-0/+14
2012-06-10 * interp/preparse.lisp: Remove.dos-reis1-1/+87
* interp/spad-parser.boot: Do not include. Import lexing instead. * interp/Makefile.in: Adjust.
2012-06-09 * interp/io.boot (%Reader): Add idx field.dos-reis1-4/+4
* interp/preparse.lisp ($INDEX): Remove. Adjust users.
2012-06-07 * interp/lexing.boot: Move %Line to io.boot.dos-reis1-1/+1
* interp/debug.lisp (SPAD_LONG_ERROR): Take a reader parameter. Tidy.
2012-06-06 * interp/io.boot (readePendingLines): Rename from readerLines.dos-reis1-3/+3
Adjust callers.
2012-06-05 * interp/io.boot (readerDeferLine): New.dos-reis1-1/+1
* interp/preparse.lisp (preparse1): Use it. * interp/spad-parser.boot (preparse): Likewise.
2012-06-04 * interp/spad-parser.boot (preparse): Tidy.dos-reis1-5/+2
2012-06-04 * interp/spad-parser.boot (findCommentBlock): Lose lastdos-reis1-1/+1
parameter. Adjust callers.
2012-06-04 * interp/spad.lisp (SPAD): Adjust.dos-reis1-377/+380
* interp/spad-parser.boot: Add a reader parameter to all parsing functions. Adjust callers. * interp/newaux.lisp: Adjust form of specialized parsers. * interp/lexing.boot: Add a reader parameter to all lexing functions. Adjust Callers. * interp/io.boot (%Reader): Add source line field. * interp/debug.lisp: Adjust IO and lexer calls. * interp/util.lisp (string2SpadTree): Remove as unused.
2012-06-03 * interp/preparse.lisp ($LineList): Remove.dos-reis1-8/+3
(INITIALIZE-PREPARSE): Do not set it. (preparse1): Do not reference it. Do not test for ioTerminal? and the input is always a disk file. * interp/spad-parser.boot (findCommentBlock): Do not reference $EchoLineStack. (preparseReadLine1): Do not reference $LineList.
2012-06-03 * interp/io.boot (%Reader): New data structure.dos-reis1-35/+35
* interp/preparse.lisp (INITIALIZE-PREPARSE): Parameter is now a reader. (preparse1): Likewise. Tidy. * interp/spad-parser.boot (preparseReadLine): Likewise. (preparseReadLine1): Likewise. (preparse): Likewise. (parseSpadFile): Likewise. * interp/spad.lisp (SPAD): Make it a unary function. Simplify. (INITIALIZE): Remove.
2012-05-29 * boot/parser.boot (%ParserState): New.dos-reis1-7/+0
(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-21 * interp/parsing.lisp: Remove.dos-reis1-2/+11
* interp/spad-parser.boot (floatExponent): New. (parseFloatExponent): Use it instead of FLOATEXPID. * interp/lexing.boot (nextLinesClear!): New. (ioClear!): Likewise. (OUT-STREAM): Define here. * interp/debug.lisp: Import lexing instead of parsing. Tidy. * interp/preparse.lisp: Likewise. * interp/spad.lisp: Likewise. * interp/util.lisp: Likewise. * interp/Makefile.in (OBJS): Do not include parsing.$(FASLEXT). (parsing.$(FASLEXT)): Remove. Adjust dependents.
2012-05-21 * interp/spad-parser.boot (addParensAndSemisToLine): Drop 'drop',dos-reis1-15/+13
avoiding awakening GCL bug and quadratic traversal of lines. (parsePiles): Simplify.
2012-05-21 * interp/spad.lisp (S-PROCESS): Rename to translateSpad and movedos-reis1-0/+29
to spad-parser.boot. * interp/parsing.lisp (MATCH-ADVANCE-SPECIAL): Remove. (MATCH-SPECIAL): Likewise. (MATCH-KEYWORD-NEXT): Likewise. (INITIAL-SUBSTRING-P): Likewise. (TERMCHR): Likewise. (dollarTran): Simplify and move to spad-parser.boot.
2012-05-21 * interp/spad-parser.boot (parseSexpr1): Simplify.dos-reis1-10/+2
(parseDara): Likewise. Do not set LABLASOC. * interp/bootlex.lisp (PRINT-DEFUN): Remove. (TRANSLABEL): Likewise. (TRANSLABEL1): Likewise. * interp/preparse.lisp (LABLASOC): Likewise.
2012-05-20 * interp/parsing.lisp (CONVERSATION): Remove.dos-reis1-3/+4
(CONVERSATION1): Likewise. (MAKE-PARSE-FUNCTION): Likewise. (MAKE-PARSE-FUNCTION1): Likewise. (MAKE-PARSE-FUNC-FLATTEN): Likewise. (MAKE-PARSE-FUNC-FLATTEN-1): Likewise. (TRANSPGVAR): Likewise. (GETRULEFUNLISTS): Likewise. (REDUCTION-PRINT): Likewise. (TRACEMETA): Likewise. (TRMETA): Likewise. (TRMETA1): Likewise. (/MDEF): Likewise. * interp/macros.lisp (EXPAND-TABS): Likewise. * interp/spad.lisp (READ-SPAD): Likewise. (READ-INPUT): Likewise. (READ-SPAD0): Likewise. (READ-SPAD1): Likewise. (READ-SPAD-1): Likewise. (New,ENTRY,1): Likewise. (New,ENTRY,2): Likewise. * interp/bootlex.lisp (SPAD_SYNTAX_ERROR): Move to debug.lisp. (SPAD_LONG_ERROR): Likewise. (SPAD_SHORT_ERROR): Likewise. (SPAD_ERROR_LOC): Likewise. * interp/c-util.boot (COMP370): Move to lisp-backend.boot. (compQuietly): Move to slam.boot.
2012-05-11 * interp/preparse.lisp (PARSEPRINT): Move to spad-parser.boot.dos-reis1-2/+9
Rename as parsePrint.
2012-05-11 * interp/preparse.lisp (ADD-PARENS-AND-SEMIS-TO-LINE): Move todos-reis1-0/+39
spad-parser.boot Rename as addParensAndSemisToLine. (PARSEPILES): Move spad-parser.boot. Rename as parsePiles.
2012-05-11 * interp/preparse.lisp (preparseReadLine1): Move to spad-parser.boot.dos-reis1-0/+16
2012-05-09 * interp/preparse.lisp (PREPARSE): Move to spad-parser.boot.dos-reis1-1/+21
Rename as preparse.
2012-05-09 * interp/preparse.lisp (FINCOMBLOCK): Move to spad-parser.boot.dos-reis1-0/+15
Rename to findCommentBlock.
2012-05-09 * interp/preparse.lisp (PREPARSE-ECHO): Move to spad-parser.boot.dos-reis1-0/+6
Rename to preparseEcho. * lisp/core.lisp.in (formatToStream): New.
2012-05-08 * interp/spad.lisp (INIT-BOOT/SPAD-READER): Don't set FILE-CLOSED.dos-reis1-26/+25
(SPAD): Tidy. * interp/spad-parser.boot (parseSpadFile): Do not test for *EOF* or FILE-CLOSED. * interp/preparse.lisp (INITIALIZED-PREPARSE): Use readLine. (preparseReadLine1): Likewise. * interp/parsing.lisp (FILE-CLOSED): Remove. (GET-A-LINE): Likewise. (CURRENT-FRAGMENT): Likewise. (INPUT-CLEAR): Likewise. (READ-A-LINE): Likewise. (IOSTREAMS-CLEAR): Don't set FILE-CLOSED. (IOCLEAR): Don't call INPUT-CLEAR.
2012-05-07 * interp/preparse.lisp (SKIP-IFBLOCK): Move to spad-parser.boot.dos-reis1-0/+41
Renamed skipIfBlock. (SKIP-IF-BLOCK): Move to spad-parser.boot. Renamed skipToEndif. (PREPARSEREADLINE): Move to spad-parser.boot. Renamed preparseReadLine.
2012-05-07 * interp/sys-globals.boot ($insideCompTypeOf): Remove.dos-reis1-1/+22
* interp/preparse.lisp (INITIAL-SUBSTRING): Remove. * interp/g-util.boot (stringPrefix?): Remove. * interp/compiler.boot (compTypeOf): Remove. (comp3): Don't call it.
2012-05-06misc cleanupdos-reis1-2/+2
2012-05-05 * interp/preparse.lisp (ADDCLOSE): Move to spad-parser.boot.dos-reis1-0/+18
Renamed addClose. (ESCAPED): Move to spad-parser.boot. Renamed escaped?. (INFIXTOK): Move spad-parser.boot. Renamed infixToken?.
2012-02-24 * interp/lexing.boot: "assume" is now also a keyword for the compiler.dos-reis1-1/+14
* interp/spad-parser.boot (parseCategory): Accept exported properties. (parseFormula): New.
2011-11-02 * interp/spad-parser.boot (parseSpadFile): Use $lineStack notdos-reis1-33/+32
BOOT-LINE-STACK. Use try/finally to ensure streams are closed. * interp/spad.lisp (New,ENTRY,2): Use parseNewExpr. * interp/util.lisp (string2SpadTree): Likewise.
2011-10-18 * interp/postpar.boot (displayPreCompilationErrors): Dot not checkdos-reis1-1/+1
for interactive mode. (postBigFloat): Likewise. (postDef): Likewise. (postMDef): Likewise. (tuple2List): Likewise. (postReduce): Likewise. (postQUOTE): Remove. (postQuot): Likewise. (postOp): Likewise. (postTran): Adjust. * interp/newaux.lisp: Replace %LET with ':='. * interp/property.lisp: Likewise. * interp/g-util.boot (getTypeOfSyntax): Likewise. * interp/define.boot (checkRepresentation): Likewise. (doIt): Likewise. * interp/compiler.boot (compSetq): Likewise. (compRecoverGuard): Likewise. (compReduce1): Likewise. * interp/c-util.boot (lhsOfAssignment): Likewise. (isAlmostSimple): Likewise. * interp/c-doc.boot (recordAttributeDocumentation): Likewise. * interp/parse.boot (parseLeftArrow): Remove. (parseLETD): Likewise. (parseAssign): Rename from parseLET. * algebra/syntax.spad.pamphlet (SpadAst): Handle both cases.
2011-10-18 * interp/spad-parser.boot (parseSegmentTail): Tidy.dos-reis1-8/+6
* interp/postpar.boot (postSEGMENT): Remove. (postTupleCollect): Likewise. (postBootNotEqual): Likewise. * interp/parsing.lisp (CHAR-EQ): Remove. (CHAR-NE): Likewise. (getToken): Likewise. * interp/newaux.lisp: Remove "^=" as legitimate operator. * interp/lexing.boot (geToken): Rename from getSpadToken. * interp/i-intern.boot (mkAtree3): Check for new form of universal segment. * interp/parse.boot (parseSegment): Likewise. * algebra/seg.spad.pamphlet (Segment): Use .. instead of SEGMENT. (SegmentFunctions2): Likewise. (UniversalSegment): Likewise.
2011-10-17 * lisp/core.lisp.in: Add ref and deref to support references.dos-reis1-26/+578
* interp/sys-constants.boot ($OperatorFunctionNames): Add "by" and "..". * interp/spad.lisp: Tidy. * interp/spad-parser.boot: New parsers. * interp/preparse.lisp: Remove dead codes. * interp/parsing.lisp (MATCH-ADVANCE-KEYWORD): Remove. * interp/parse.boot (doParseCategory): Rename from parseCategory. * interp/newaux.lisp: Tidy. * interp/lexing.boot (getSpadToken): New. (Keywords): Remove 'when'. (matchKeywordNext): New. (matchSpecial): Likewise. (matchAdvanceSpecial): Likewise. (matchAdvanceGlyph): Likewise. * interp/fnewmeta.lisp: Move variable definitions to preparse.lisp. Remove Lisp based parsers. Remove file. * interp/c-doc.boot (recordAttributeDocumentation): Fix thinko. * interp/bootlex.lisp (GET-BOOT-TOKEN): Remove. * interp/Makefile.in: Adjust dependencies. * boot/parser.boot (bpChar): New. (bpPattern): Allow character constants.
2011-10-12 * interp/spad-parser.spad: New parsing functions.dos-reis1-0/+39
* interp/fnewmeta.lisp: Use them, (PARSE-Return): Remove. (PARSE-Throw): Likewise. (PARSE-Jump): Likewise. (PARSE-Exit): Likewise. (PARSE-Leave): Likewise. (PARSE-ElseClause): Likewise. (PARSE-Label): Likewise.
2011-10-12 * interp/lexing.boot (matchAdvanceKeyword): New.dos-reis1-1/+100
* interp/spad-parser.boot: New parsing functions. * interp/fnewmeta.lisp: Use them. (PARSE-NewExpr): Remove. (PARSE-Command): Likewise. (PARSE-SpecialKeyWord): Likewise. (PARSE-TokenOption): Likewise. (PARSE-PrimaryOrQM): Likewise. (PARSE-InfixWith): Likewise. (PARSE-With): Likewise. (PARSE-Inline): Likewise. (PARSE-Quanifier): Likewise. (PARSE-QuantifiedVariable): Likewise. (PARSE-Infix): Likewise. (PARSE-Prefix): Likewise. (PARSE-Suffix): Likewise. (PARSE-TokTail): Likewise. (PARSE-Qualification): Likewise. (PARSE-Primary): Likewise. (PARSE-PrimaryNoFloat): Likewise. (PARSE-Quad): Likewise.
2011-10-11 * interp/lexing.boot (matchAdvanceString): New.dos-reis1-0/+18
* interp/spad-parser.boot: New parsing functions. * interp/fnewmeta.lisp: Use them. (PARSE-VarForm): Remove. (PARSE-Scripts): Likewise. (PARSE-ScriptItem): Likewise. (PARSE-AnyId): Likewise. * interp/parsing.lisp (PARSE-OperatorFunctionName): Remove. (MATCH-ADVANCE-STRING): Likewise.
2011-10-11 * interp/metalex.lisp (DEFUN-PARSE-TOKEN): Remove.dos-reis1-1/+24
Move remaining to parsing.lisp. * interp/fnewmeta.lisp (PARSE-IntegerTok): Remove. (PARSE-FloatTok): Likewise. (PARSE-FormalParameter): Likewise. (PARSE-FormalParameterTok): Likewise. (PARSE-String): Likewise. (PARSE-Name): Likewise.
2011-10-04 * interp/lexing.boot (stackClear!): Fix typo.dos-reis1-1/+1
Add new grammar reduction abstract datatype facility. * interp/fnewmeta.lisp: Use it. * interp/parsing.lisp: Likewise. * interp/bootlex.lisp (SPAD): Use popStack1. * interp/spad-parser.boot (parseSpadFile): Likewise. * interp/metalex.lisp: Remove REDUCTION and associated functions.
2011-08-23 * interp/sys-driver.boot (initializeDatabases): New.dos-reis1-6/+3
(initializeGlobalState): Use it. * interp/spad-parser.boot (parseSpadFile): Tidy. * interp/g-cndata.boot (installConstructor): Exit early it global table not initialized. * interp/database.boot (makeInitialDB): New. (populateDBFromFile): Likewise. * interp/daase.lisp: Introduce more DB accessors. * interp/br-util.boot (dbSourceFile): Remove. * interp/br-con.boot (kdPageInfo): Use getConstructorSourceFileFromDB instead of dbSourceFile. (kPage): Likewise. * algebra/Makefile.in (SPADFILES): Include domain.spad
2011-04-21 * boot/tokens.boot: Don't rename nreverse.dos-reis1-1/+1
* boot/utility.boot (reverse!): Define. * boot/parser.boot: Use reverse! instead of NREVERSE. * boot/ast.boot: Generate reverse! forms instead of NREVERSE.
2009-08-17 * boot/tokens.boot: Retire "^" as negation operator.dos-reis1-2/+2
* interp/br-search.boot: Use "not" instead of "^". * interp/br-util.boot: Likewise. * interp/database.boot: Likewise. * interp/define.boot: Likewise. * interp/format.boot: Likewise. * interp/g-error.boot: Likewise. * interp/i-analy.boot: Likewise. * interp/i-coerce.boot: Likewise. * interp/i-coerfn.boot: Likewise. * interp/i-funsel.boot: Likewise. * interp/i-map.boot: Likewise. * interp/i-output.boot: Likewise. * interp/i-resolv.boot: Likewise. * interp/i-spec1.boot: Likewise. * interp/i-spec2.boot: Likewise. * interp/i-syscmd.boot: Likewise. * interp/mark.boot: Likewise. * interp/modemap.boot: Likewise. * interp/pspad1.boot: Likewise. * interp/pspad2.boot: Likewise. * interp/spad-parser.boot: Likewise. * interp/trace.boot: Likewise. * interp/wi1.boot: Likewise. * interp/wi2.boot: Likewise.