Doug Coleman
9e48ebefaa
Merge remote-tracking branch 'origin/master' into modern-harvey3
2019-06-05 23:50:08 -05:00
Alexander Iljin
0007789795
continuations[-docs]: add the finally word
2019-04-22 21:57:51 -07:00
Doug Coleman
f05c7e8cd8
factor: char: a -> ch'a.
...
Also all contractions are not allowed in word names anymore. Even Data cannot use contractions...
2018-08-09 18:02:38 -04:00
Doug Coleman
53b1a81049
Merge branch 'master' into modern-harvey2
2018-06-20 00:26:12 -05:00
Doug Coleman
9f213f96f6
core: Add the shuffler words but without primitives.
...
The nipd branch slowed bootstrap by a minute, this patch does not.
sorry about changing the fjsc line endings...
2018-06-19 22:52:58 -05:00
Doug Coleman
ec05bf7be9
core: Add support for quotations inside stack-effects.
...
Disabled: Preconditions for functors are awkward to implement without creating new syntax. Instead, allow stack effects of the form ( x: [ 1 + ] -- y ) everywhere.
2017-11-25 18:44:37 -06:00
Doug Coleman
29708329ab
core: Fix how \words are parsed.
2017-08-31 21:21:15 -05:00
Doug Coleman
b0858e48b8
core: \foo is literally just foo. To escape it, do ``\ foo`` instead.
...
Fix smalltalk too.
2017-08-31 21:21:14 -05:00
Doug Coleman
839a5a22ec
effects: make :type print as :type instead of ``_: type``
2016-05-14 17:03:09 -07: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
24d9e3a491
effects.parser: allow generic methods not in current vocabs.
2016-03-30 17:21:58 -07:00
John Benediktsson
dcf8aa16c7
effects.parser: fix some incorrect can't-nest-definition errors.
...
definitions in one vocabulary can trigger definitions in other vocabularies,
so track them separately instead of using a single boolean.
2016-03-30 13:16:15 -07:00
Doug Coleman
58efceb408
effects.parser: Remove left-over old code that did (( -- )) stack effects.
2016-03-25 03:13:27 -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
3d4bc1de1a
core: rename parse-call( to parse-call-paren
2015-07-27 09:54:08 -07:00
Doug Coleman
ee921150c7
effests.parser: Oops wrong word.
2013-04-14 13:33:48 -07:00
Doug Coleman
bd3762502f
effects.parser: Fix word -> current-word for definition errors.
2013-04-14 13:32:15 -07:00
Doug Coleman
d33dc194ca
core: in-definition -> with-definition.
2012-08-24 16:07:31 -07:00
Doug Coleman
b06b6a8261
core: rename in-word-definition to in-definition
2012-08-24 16:04:49 -07:00
Doug Coleman
84402ccf7e
core: Don't allow nested defintions in :, ::, M:, M::. Fixes #469 .
2012-08-24 15:53:45 -07: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
f21fee3b73
Rename complete-effect to scan-effect
2011-10-17 10:25:27 -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
Slava Pestov
8a0525e5ce
Add a scan-token word which is like scan, except throws an error on EOF; document scan-object word; mention that scan-token/scan-object are preferred over scan/scan-word
2010-07-06 16:20:08 -04:00
Joe Groff
8b1b7b20d5
effect-variable -> row-variable
2010-03-11 01:25:13 -08:00
Joe Groff
d001c1f375
carve up effects.parser too
2010-03-11 01:03:40 -08:00
Joe Groff
a3033e885a
make effect variables part of effect syntax, stored out of band in effect tuple
2010-03-05 13:30:10 -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
b551721dd9
Minor cosmetic fixes
2009-11-10 21:48:00 -06:00
Doug Coleman
93de179c2f
over push -> suffix!, over push-all -> append!
2009-10-28 15:29:01 -05:00
Joe Groff
19b10fb85e
bring back ( x: type y: type -- ) stack effect syntax, and automatically hint words based on types in their declared effect
2009-09-01 14:39:22 -05:00
Doug Coleman
686b3e348e
use ERROR: in several places instead of throwing strings
2009-08-11 23:09:02 -05:00
Daniel Ehrenberg
9e9116f0ea
Better error message for syntax error in : foo ( : bar
2009-03-31 23:18:52 -05:00
Slava Pestov
e0d48e3ab6
New utility word: complete-effect
2009-03-22 17:59:40 -05:00
Slava Pestov
c0154c1391
Change (:) to parse effect immediately, and remove ( parsing word
2009-03-21 03:17:35 -05:00
Slava Pestov
be4fb1e7d9
Move call( and execute( to core
2009-03-16 20:11:36 -05:00
Slava Pestov
cd53c2bd37
produce and produce-as: don't need third quotation either
2009-02-28 15:31:34 -06:00
Slava Pestov
f34c14a0f5
Remove some usages of tuck
2009-01-23 18:20:47 -06:00
Slava Pestov
d66f887736
Create basis vocab root
2008-07-28 22:03:13 -05:00
Slava Pestov
ac2bf0b87d
Adding inline recursive declarations
2008-07-18 19:22:59 -05:00
Slava Pestov
6e0d35e615
Split up huge parser vocabulary
2008-06-25 03:25:08 -05:00