alien.syntax: save source location for TYPEDEF:, raise error on redefinition

db4
Slava Pestov 2010-02-05 20:26:20 +13:00
parent aa3d65272a
commit 59193af701
2 changed files with 13 additions and 3 deletions

View File

@ -1,6 +1,7 @@
USING: alien alien.syntax alien.c-types alien.parser
eval kernel tools.test sequences system libc alien.strings
io.encodings.utf8 math.constants classes.struct classes ;
io.encodings.utf8 math.constants classes.struct classes
accessors compiler.units ;
IN: alien.c-types.tests
CONSTANT: xyz 123
@ -100,3 +101,12 @@ DEFER: struct-redefined
\ struct-redefined class?
] unit-test
[
"IN: alien.c-types.tests
USE: alien.syntax
USE: alien.c-types
TYPEDEF: int type-redefinition-test
TYPEDEF: int type-redefinition-test" eval( -- )
]
[ error>> error>> redefine-error? ]
must-fail-with

View File

@ -1,4 +1,4 @@
! Copyright (C) 2005, 2009 Slava Pestov, Alex Chapman.
! Copyright (C) 2005, 2010 Slava Pestov, Alex Chapman.
! See http://factorcode.org/license.txt for BSD license.
USING: accessors arrays alien alien.c-types
alien.arrays alien.strings kernel math namespaces parser
@ -22,7 +22,7 @@ SYNTAX: CALLBACK:
(CALLBACK:) define-inline ;
SYNTAX: TYPEDEF:
scan-c-type CREATE-C-TYPE typedef ;
scan-c-type CREATE-C-TYPE dup save-location typedef ;
SYNTAX: C-ENUM:
";" parse-tokens