factor/misc/fuel/strange-syntax.factor

104 lines
1.9 KiB
Factor

USING: accessors alien.c-types alien.syntax
classes.struct colors.constants colors.hex kernel literals logging
math ;
IN: strange
! FUEL Syntax Demo
!
! The purpose of this file is to test that corner cases are
! highlighted correctly by FUEL. So if you change something in the
! syntax highlighting and it breaks, things will be badly hightlighted
! here.
USING: alien.syntax kernel math ;
IN: strange-syntax
TUPLE: a-tuple slot1 slot2 { slot3 integer } { slot4 initial: "hi" } ;
TUPLE: second-one ;
USING: tools.test ;
TUPLE: initial-array { slot2 initial: { 123 } } slot3 ;
! ! Strings
"containing \"escapes" drop
! ! Symbol names
TUPLE: tup
ko
get\it
{ eh\ integer }
{ oh'ho } ;
! All slashes are symbol constituents.
: hack/slash ( t -- x ) ko>> ;
: um ( x y -- ) get\it<< ;
: slash\hack ( m -- y )
get\it>> dup >>get\it ;
: very-weird[33] ( -- ) ;
LOG: what NOTICE
TUPLE: oh\no { and/again initial: "meh" } ;
! As are quotes
: don't-do-that ( x -- y ) ;
! Double quotes aren't right yet.
! : do-"that" ( x -- y ) ;
! ! C-TYPE
C-TYPE: cairo_snurface_t
! ! CHAR
: stuff-with-chars ( -- K \n )
CHAR: K
CHAR: \n
CHAR: \" ! <- \" should be highlighted
drop ;
! ! MAIN
: majn ( -- ) ;
MAIN: majn
! ! SLOT
SLOT: komba
! ! SYNTAX
<<
SYNTAX: ID-SYNTAX ;
>>
ID-SYNTAX ID-SYNTAX
! ! Numbers
{ -55 -0x10 100,00 1,000,000 0x2000,0000 0b01 } drop
! ! Containers
V{ 1 2 3 } drop
HS{ 9 8 3 } drop
flags{ 10 20 } drop
! ! Alien functions
STRUCT: timeval
{ sec long }
{ usec long } ;
FUNCTION: int futimes ( int id,
timeval[2] times,
int x,
int y )
FUNCTION: int booyah ( int x )
FUNCTION-ALIAS: test int bah ( int* ah, int[] eh )
HEXCOLOR: ffffff COLOR: green NAN: 1234 CHAR: m ALIEN: 93
2drop 2drop drop
PRIMITIVE: one ( a -- b )
PRIMITIVE: two ( c -- d )