Commit Graph

203 Commits (c8d1b756d4954730e2c210fb8f639eb6e60cd8ad)

Author SHA1 Message Date
Björn Lindqvist 1c53e43768 parser: new parsing word parse-array-def
The idea behind this word is that in many cases parsing to an array is
much more convenient than parsing to a quotation.
2016-12-03 12:56:47 +01:00
Doug Coleman 3fa9ad91f6 effects: Add support for :type as standalone, unnamed types. ( :float -- ) pprints as ( _: float -- ), and ( :( a -- b ) -- ) works, etc. :union{ foo bar } pprints as object but could be improved if the effects parser uses the prettyprinter somehow.
Move ?execute-parsing to parser to avoid circularity.
2016-05-12 16:27:50 -07:00
John Benediktsson 950f42eedd parser: make scan-class assert result is a classoid like it used to. 2016-04-13 16:41:48 -07:00
John Benediktsson e477f6996f Fix comments to be ! not #!. 2015-09-08 16:15:10 -07:00
John Benediktsson 18e557785f Revert "parser: split parse-file into (parse-file)."
This reverts commit 18bbe6292a.
2015-08-15 16:05:41 -07:00
John Benediktsson 18bbe6292a parser: split parse-file into (parse-file). 2015-08-15 09:12:06 -07:00
John Benediktsson 2c41c913ee parser: split out check-word-name. 2015-08-14 19:51:52 -07:00
John Benediktsson ceb75057da change ERROR: words from throw-foo back to foo. 2015-08-13 16:13:05 -07:00
Doug Coleman 02008979d9 factor: Change ERROR: foo ; to define ``throw-foo`` instead of having ``foo`` throw implicitly. The old ``foo`` still throws implicitly because this is a big change to get right in one patch, but it should be removed soon. 2015-08-12 15:26:18 -05:00
Doug Coleman 117727d444 parser, source-files: you need to bootstrap after this patch.
cleans up some file vs path naming.

file -> current-source-file
file -> current-test-file somewhere else
source-file -> path>source-file
source-file-tuple -> source-file
2015-07-23 22:03:43 -07:00
Doug Coleman 2adeed9cb3 factor: rename classes:members to class-members so it doesn't conflict with sets:members. ugh. 2015-07-20 00:32:42 -07:00
Björn Lindqvist 4d47b826bf parser: added helper word use-first-word? to simplify no-word 2015-06-09 13:02:03 +02:00
Doug Coleman 6e60c811ac core: Rename create to create-word, create-in to create-word-in. 2015-06-08 12:47:35 -07:00
John Benediktsson b366a06c41 use reject instead of [ ... not ] filter. 2015-05-12 18:50:34 -07:00
Doug Coleman 401b57c6b9 Revert "parser: Print "Loading" message as a comment for homoiconicity. See #1221."
This reverts commit 10cf6e3dd2.
2014-11-23 22:41:15 -08:00
Doug Coleman 10cf6e3dd2 parser: Print "Loading" message as a comment for homoiconicity. See #1221. 2014-11-23 16:56:49 -08:00
Doug Coleman c71c200063 parser: Fix for empty word list. Oops. 2014-10-27 19:38:32 -07:00
Doug Coleman ce3d31014c parser: Cleaner fix, comments. Fixes #1174. 2014-10-27 12:12:55 -07:00
Doug Coleman b83fe1db51 parser: Consider private words now for autocompletes, but to avoid pulling in private words unexpectedly, throw a restart that confirms you really want the private word. Fixes #1174. 2014-10-27 12:01:37 -07:00
John Benediktsson a38524eb99 lexer/parser: rename (scan-token) to ?scan-token, (scan-datum) to ?scan-datum. 2014-05-20 09:13:58 -07:00
John Benediktsson 2b7d53b7d1 parser: add invalid-word-name, use it to check for redefining quotes. 2013-04-25 15:41:20 -07:00
Doug Coleman 2d9a15c7c1 lexer, parser: Rename unexpected-eof. 2013-03-23 21:35:50 -07:00
Doug Coleman 5fab749dcc words: Change word -> last-word, set-word -> set-last-word. 2013-03-23 16:12:03 -07:00
John Benediktsson bc18b2cd29 compiler.units: more use of hash-sets. 2013-03-10 18:04:37 -07:00
John Benediktsson 7f3f90eb8d compiler: more use of hash-sets. 2013-03-10 16:13:31 -07:00
John Benediktsson 5487480126 core: cleanup USING lists. 2013-03-05 10:34:47 -08:00
John Benediktsson c1269bc8a3 parser: make sure lines is an array. 2012-07-27 19:06:22 -07:00
Joe Groff 0b45465722 parser: remove parse-base dead code 2011-11-23 22:33:31 -08:00
Doug Coleman cab0369fec classes: Make methods dispatch on maybes. Fix a couple bugs in the implementation of maybe. classoid? is now a dumb test if an object could be a well-formed classoid; valid-classoid? tests for well-formedness. Move maybe tests. Make pprint* work better on methods. 2011-11-22 15:12:20 -08:00
Doug Coleman 067f9830ef classes.union: Define a maybe: word that makes a tuple that acts as an anonymous union for a type and f. Updated all the places we define UNION: ?foo foo POSTPONE: f ;. Fixes #416 and lots of headaches. 2011-11-22 01:56:13 -08:00
Doug Coleman dc0a921866 Remove the lexer-factory because nothing uses it. Update usages. 2011-10-29 01:11:19 -07:00
Doug Coleman b43c069b81 Change prompt to something we can copy/paste back into the Factor repl. Add auto-use word. Fixes #301. 2011-10-29 01:05:38 -07:00
John Benediktsson 80e1c8e3f2 Eliminate duplicate syntax for stack effects "(" no longer drops and is identical to the old "((", which is now removed. 2011-10-18 13:19:39 -07:00
Doug Coleman 671f19d70f Remove all non-core uses of (scan-token)
Add scan-datum
Add scan-number
Document more words
Fixes #225.
2011-10-02 12:00:08 -07:00
Doug Coleman 76580da5d5 Refactor the lexer/parser to expose friendlier words for scanning tokens. The preferred top-level words now throw an exception on EOF.
CREATE -> scan-new
CREATE-CLASS -> scan-new-class
CREATE-WORD -> scan-new-word
CREATE-GENERIC -> scan-new-generic
scan -> (scan-token)
scan-token now throws on eof
(scan-word) returns word/number/f
scan-word now throws on eof
scan-word-name expects a non-number
Fixes #183.
Fixes #209.
2011-09-29 11:28:28 -07:00
Doug Coleman 5fce2d0f27 Make "quiet" true by default. Disable quiet mode for listener, bootstrap, and deploy tool.
Move "quiet" to parser-quiet? in parser.notes. Change a few places where quiet was handle wrong.
2011-09-06 17:58:12 -07:00
Joe Groff c3f8f5067e catch merge conflicts in source and report them as such 2010-04-06 13:34:26 -07:00
Joe Groff 163c26ad72 lexer, parser: show initial parsing word line as part of lexer-errors 2010-02-28 13:01:03 -08:00
Slava Pestov f0aa694c7e effects.parser: throw a proper no-word error if effect references an unknown class word 2010-02-23 23:57:13 +13:00
Slava Pestov db3a23ffe0 parser: auto-use prefers non-private words to private words 2010-02-22 19:25:08 +13:00
Slava Pestov 3237e48b2d vocabs.parser: The manifest is now a definition observer, and updates itself when compilation units complete. This helps keep listener's search path up to date if vocabularies and words are renamed, defined, and undefined
- This makes forget-vocab more reliable in the listener
- It also fixes the problem of listener sessions where QUALIFIED: was used referring to outdated words if the vocabulary in question was reloaded
2010-01-27 20:49:26 +13:00
Slava Pestov ed37ed6b70 parser: make 'CONSTANT: foo<newline>3' work in the listener 2010-01-15 08:30:26 +13:00
Doug Coleman 7ce4b746e5 parsed -> suffix!, add append! 2009-10-28 13:38:27 -05:00
Joe Groff ce807b0fbb factor "parse-word" out of "scan-word" 2009-10-16 12:26:31 -05:00
Slava Pestov 3c55e7fe0c Add NAN: literal syntax for NANs with a payload 2009-09-12 15:06:15 -05:00
Slava Pestov aba4fa7371 Recent vocabs.parser change had a regression: vocabs with no roots (scratchpad) were excluded from default use list. Also move with-interactive-vocabs to listener vocab 2009-06-07 21:59:13 -05:00
Slava Pestov 35ccf0231e Factor out parser note code into parser.notes vocabulary, and print a note if a using list contains duplicates 2009-05-16 09:40:17 -05:00
Slava Pestov 274655e77c More work on auto-use 2009-05-16 04:26:45 -05:00
Slava Pestov b31fe9b8f2 Implement stricter vocab search path semantics, with a new API for vocabs.parser. Add map-find-last to sequences vocab 2009-05-14 22:31:29 -05:00
Slava Pestov 0c1e519dcb Rename use+ to add-use, move search to vocabs.parser, EXCLUDE: bombs out if word doesn't exist 2009-05-13 22:15:48 -05:00