Commit Graph

47 Commits (4d83867cb4addb1c3a726d84c6575c53bc2fbd5a)

Author SHA1 Message Date
John Benediktsson 4d83867cb4 strings.parser: remove parse-short-string, everyone should parse-string. 2016-04-04 15:00:04 -07:00
John Benediktsson 399d01f56e strings.parser: finish removing triple-strings.
parse-string => parse-short-string (on the same line)
parse-multiline-string-until => parse-full-string
2015-08-17 19:49:12 -07:00
Doug Coleman 5c8c76cc22 alien.syntax: We have to include alien.arrays somewhere before libc loads. 2014-11-17 09:44:21 -08:00
John Benediktsson 74058d3dff alien: cleanup using. 2014-11-16 20:31:32 -08: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
Slava Pestov 6142bd7335 alien.syntax: FUNCTION: and FUNCTION-ALIAS: now define inline words 2010-07-28 03:05:14 -04: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 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 8c915e05f7 alien.parser, alien.syntax: refactor ENUM: to separate parsing from definition 2010-04-19 20:07:17 -07:00
Joe Groff 4bc915d526 C-ENUM: -> ENUM: 2010-04-19 20:07:16 -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
Erik Charlebois 4b78fe690b Extend C-ENUM: to allow specifying the constant vvalues like in C. Add C-TYPED-ENUM: to automatically typedef a type. 2010-04-06 02:46:23 -07:00
Joe Groff 5955ba06df use a "pointer" wrapper tuple to indicate pointer types instead of the current slipshod approach 2010-02-21 16:27:36 -08:00
Slava Pestov 59193af701 alien.syntax: save source location for TYPEDEF:, raise error on redefinition 2010-02-05 20:52:20 +13:00
Doug Coleman 93de179c2f over push -> suffix!, over push-all -> append! 2009-10-28 15:29:01 -05:00
Doug Coleman 7ce4b746e5 parsed -> suffix!, add append! 2009-10-28 13:38:27 -05:00
Slava Pestov b88fde04d9 alien.syntax: add C-GLOBAL: for defining words to access global variables, and remove the gimpy one from core-text.utilities 2009-10-09 04:46:29 -05:00
Joe Groff 44f393771b change CALLBACK: to use the ABI of the current LIBRARY: and get rid of STDCALL-CALLBACK: 2009-09-28 19:27:28 -05:00
Joe Groff 123f4fbc30 redefine C-TYPE: to forward declare opaque C types; make C type definition and redefinition a little more robust 2009-09-27 22:12:00 -05:00
Joe Groff 2cf0f3e5d3 move alien.inline, alien.cxx, alien.marshall to unmaintained; nuke alien.structs 2009-09-26 20:37:42 -05:00
Joe Groff 00fa7f73fb add CALLBACK: syntax that defines a typedef and an alien-callback constructor word for function pointer types. update some code in iokit.hid and windows.dinput to use CALLBACK: instead of TYPEDEF:/word pairs 2009-09-21 11:59:41 -05:00
Joe Groff 40620d470f allow word c-types and definitions to coexist 2009-09-16 17:18:19 -05:00
Joe Groff 3b4330fcf6 get things to a point where they bootstrap again 2009-09-15 21:43:18 -05:00
Joe Groff ac41416953 create words for c-types 2009-09-15 15:18:54 -05:00
Slava Pestov a2b864e4f5 ALIEN: now reads a hexadecimal integer instead of a decimal one, since in general hex is more useful for addresses 2009-09-12 21:17:53 -05:00
Joe Groff e85925153c deprecate C-STRUCT:, C-UNION:, and old-school struct accessors 2009-08-27 21:51:08 -05:00
Doug Coleman 3f3d57032b Delete empty unit tests files, remove 1- and 1+, reorder IN: lines in a lot of places, minor refactoring 2009-08-13 19:21:44 -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 c3e7db3852 Refactor FUNCTION: to make it more extensible 2009-04-18 02:37:35 -05:00
Doug Coleman 8b7fcce399 update code for usages of add-library 2009-03-25 23:00:19 -05:00
Slava Pestov ea60f8ae93 Changing : foo ; parsing to SYNTAX: foo ; 2009-03-21 01:27:50 -05:00
Slava Pestov 87a1363c95 Merge branch 'master' into new_ui 2009-01-21 19:56:20 -06:00
Slava Pestov 71bc5e9e10 Fix &: to throw an error if the symbol does not exist 2009-01-21 19:55:33 -06:00
Slava Pestov 4fb20dcfe2 C-ENUM: uses define-constant 2009-01-16 17:44:29 -06:00
Slava Pestov c5160d76e9 Merge qualified, alias, symbols, constants into core 2008-12-17 18:10:01 -06:00
Slava Pestov c679ae025b Rename tools.disassembler.udis:& to alien.syntax:&: and fix it to survive image save/load 2008-12-11 00:03:58 -06:00
Slava Pestov 4f0a9f311e Untangling some dependencies 2008-12-08 14:58:00 -06:00
Slava Pestov 192a164ef4 Fix some bugs 2008-12-02 00:24:00 -06:00
Slava Pestov 3e25d14e54 Code cleanup: refactoring usages of rot and -rot to use newer idioms instead 2008-11-30 17:47:29 -06:00
Slava Pestov 594751381e Fix bootstrap 2008-11-29 15:21:12 -06:00
Doug Coleman 57e34e9d6c remove >r r> from alien 2008-11-29 13:37:38 -06:00
Slava Pestov c19f2257f4 Fix permission bits 2008-10-02 08:34:49 -05:00
Slava Pestov d66f887736 Create basis vocab root 2008-07-28 22:03:13 -05:00