John Benediktsson
e0389df8c4
Revert "alien.parser: throw error if enum values don't fit c-type."
...
This reverts commit 2e326498a4
.
2016-11-09 15:41:54 -08:00
John Benediktsson
2e326498a4
alien.parser: throw error if enum values don't fit c-type.
2016-11-08 21:45:54 -08:00
Björn Lindqvist
b418b434fa
alien.debugger: this vocab isn't needed
...
The summary methods doesn't need dedicated vocabs. Unlike prettyprint methods.
2016-08-15 15:16:41 +02:00
Björn Lindqvist
907d63c16b
alien.*: moving the c-type-string word to the alien.c-types vocab
...
This way it can be used in alien.parser instead of return-type-name.
2016-08-10 21:34:38 +02:00
Björn Lindqvist
13a983783f
alien.parser/prettyprint: moving the predicates
2016-08-10 21:34:38 +02:00
Björn Lindqvist
ddc5ece757
alien.*: frontend varargs support! #1677
...
alien-invoke gets an extra parameter indicating if the call uses varargs
or not. In 99.9% of the cases, the parameter should be f, but is t if
varargs are indicated. E.g
: do-printf ( fmt d -- st ) int f "printf" { c-string double } t alien-invoke ;
2016-08-10 21:34:37 +02:00
Björn Lindqvist
dbd716cc99
alien.parser: method object return-type-name is redundant
2016-08-10 21:34:37 +02:00
Björn Lindqvist
b96077beb7
alien.parser: better fix for #1535
...
These changes ensure that reset-generic is called when parsing alien
words. Otherwise problems occur when you redefine generics as callbacks
or typedefs.
2016-05-28 17:22:45 +02:00
Björn Lindqvist
69f667edc8
alien.parser: make make-callback-type have the same signature as make-function
2016-05-28 17:21:45 +02:00
Björn Lindqvist
350e890a03
alien.parser: fix for #1535
...
(CREATE-C-TYPE) needs to be called on the word naming the
callback. Otherwise the old definition remains in old-definition and you
can get a no word found error.
2016-05-27 20:54:52 +02:00
John Benediktsson
ceb75057da
change ERROR: words from throw-foo back to foo.
2015-08-13 16:13:05 -07:00
Doug Coleman
b6be8685c3
basis: ERROR: changes.
2015-08-13 03:20:39 -07:00
Doug Coleman
14ba179254
factor: change FUNCTION: and similar to not have trailing ;
2015-07-19 16:24:47 -07:00
John Benediktsson
c5e4bb4980
alien.parser: change scan-c-args to always use ";" as end-marker in preparation for maybe removing it later.
2015-07-19 15:08:56 -07:00
John Benediktsson
aa00d59d59
words: rename reset-props to remove-word-props.
2015-06-09 11:53:46 -07: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
74058d3dff
alien: cleanup using.
2014-11-16 20:31:32 -08:00
Doug Coleman
5fab749dcc
words: Change word -> last-word, set-word -> set-last-word.
2013-03-23 16:12:03 -07:00
John Benediktsson
934b307ba2
make some predicates return t/f instead of something/f.
2012-07-29 10:52:46 -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
John Benediktsson
d61de12011
Cleanup more lint warnings.
2011-10-14 12:31:46 -07:00
John Benediktsson
378786599d
Cleanup lint warnings.
2011-10-14 11:47:24 -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
Joe Groff
a820c1091d
alien: merge enum improvements from Blei/gtk-image-loader
2011-08-27 13:48:30 -07:00
Erik Charlebois
e28e48beea
Create a setter for C-GLOBAL words
2011-05-23 23:36:14 -04:00
Doug Coleman
3ac8847a15
Fix typo ohno
2010-09-29 17:29:28 -05:00
Doug Coleman
3cdc9ba650
Use create-class-in to get redefinition errors with enums
2010-09-29 16:24:25 -05:00
Slava Pestov
25ea734a8e
alien.parser: make int[3]* parse, make int[3][4 not parse
2010-08-15 02:37:17 -07:00
Slava Pestov
e8152e9098
alien.parser: array types where the base type was a pointer didn't parse (reported by Dmitry Shubin)
2010-08-15 02:32:12 -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
Slava Pestov
ba7cb61133
Stack allocation improvements
...
- New with-out-parameters combinator
- Inhibit tail call optimization in frames with local allocation, to ensure that passing a stack allocated value to the last word in the quotation works
- local allocations are now aligned properly
- spill slots are now aligned properly aligned in frames which have parameter and local allocation areas
2010-05-22 02:37:00 -04:00
Slava Pestov
de8e0ccd5c
alien.c-types: cleanup
2010-05-04 19:33:55 -04:00
Erik Charlebois
baab8c060d
Remove ENUM: f and replace uses with CONSTANTs.
...
Fix bootstrap and load-all errors from enum classes.
2010-04-19 20:08:40 -07:00
Joe Groff
d3f770d545
add alien.enums vocab with enum-c-types that convert between symbols and integer values in the FFI. update ENUM: to define symbolic enums, and take an optional base type
2010-04-19 20:07:18 -07:00
Joe Groff
6e55a3b8f5
alien.parser, alien.syntax: send ENUM: body to parse-enum
2010-04-19 20:07:17 -07:00
Joe Groff
f394cb4fdc
alien.parser: have define-enum handle the case when the enum name is f
2010-04-19 20:07:17 -07:00
Joe Groff
8c915e05f7
alien.parser, alien.syntax: refactor ENUM: to separate parsing from definition
2010-04-19 20:07:17 -07:00
Joe Groff
d20bff5615
prettyprint FUNCTION-ALIAS: definitions
2010-04-14 12:40:10 -07:00
Joe Groff
e5c1a82643
alien.syntax: FUNCTION-ALIAS: syntax to define a C function binding with a different Factor name
2010-04-14 12:06:45 -07:00
Slava Pestov
becb7c78b7
Move non-parsing words out of alien.syntax, and use a symbol instead of a string variable to store the current library in alien.parser
2010-04-12 18:09:26 -05:00
Erik Charlebois
edc489f4c1
Change C-ENUM: to always take a type. Use f for anonymous enums. Update all uses.
2010-04-09 23:48:22 -07:00
Slava Pestov
6ff0393e2f
debugger: Untangle some dodgy dependencies that were loading locals before prettyprint, resulting in locals.prettyprint not being loaded
2010-03-17 19:19:43 +13:00
Joe Groff
cd17a934ac
cut commas off of FUNCTION: parameter names in stack effects again
2010-02-28 19:29:53 -08:00
Joe Groff
078ca0fa58
alien.parser: refactor FUNCTION: parsing to read from the source incrementally. parse errors in FUNCTION: should now correspond to their location within the definition
2010-02-28 16:20:45 -08:00
Joe Groff
1916b9269e
"pointer-c-type" word-prop hack is now unnecessary since all pointer types behave uniformly now
2010-02-23 12:07:55 -08:00
Joe Groff
00a7559d55
have TYPEDEF:, STRUCT: etc. throw an error if you try to define a c type name ending with asterisk
2010-02-23 10:16:18 -08:00
Joe Groff
4d2ded634b
alien.parser: properly generate return type name for FUNCTION: stack effects
2010-02-22 11:25:01 -08:00
Joe Groff
31a0d98e02
Merge branch 'master' into new-alien-pointers
...
Conflicts:
basis/alien/c-types/c-types.factor
basis/stack-checker/dependencies/dependencies.factor
2010-02-22 10:32:59 -08:00
Slava Pestov
23a1f0ed8c
alien: some code cleanups and fixes
2010-02-23 01:28:56 +13:00