mirror of
				https://github.com/KevinMidboe/linguist.git
				synced 2025-10-29 17:50:22 +00:00 
			
		
		
		
	
		
			
				
	
	
		
			124 lines
		
	
	
		
			3.3 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
			
		
		
	
	
			124 lines
		
	
	
		
			3.3 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
Red/System [
 | 
						|
    Title:      "Red/System example file"
 | 
						|
    Purpose:    "Just some code for testing Pygments colorizer"
 | 
						|
    Language:   http://www.red-lang.org/
 | 
						|
]
 | 
						|
 | 
						|
#include %../common/FPU-configuration.reds
 | 
						|
 | 
						|
; C types
 | 
						|
 | 
						|
#define time!                   long!
 | 
						|
#define clock!                  long!
 | 
						|
 | 
						|
date!: alias struct! [
 | 
						|
    second                      [integer!]  ; 0-61 (60?)
 | 
						|
    minute                      [integer!]  ; 0-59
 | 
						|
    hour                        [integer!]  ; 0-23
 | 
						|
 | 
						|
    day                         [integer!]  ; 1-31
 | 
						|
    month                       [integer!]  ; 0-11
 | 
						|
    year                        [integer!]  ; Since 1900
 | 
						|
 | 
						|
    weekday                     [integer!]  ; 0-6 since Sunday
 | 
						|
    yearday                     [integer!]  ; 0-365
 | 
						|
    daylight-saving-time?       [integer!]  ; Negative: unknown
 | 
						|
]
 | 
						|
 | 
						|
#either OS = 'Windows [
 | 
						|
    #define clocks-per-second   1000
 | 
						|
][
 | 
						|
    ; CLOCKS_PER_SEC value for Syllable, Linux (XSI-conformant systems)
 | 
						|
    ; TODO: check for other systems
 | 
						|
    #define clocks-per-second   1000'000
 | 
						|
] 
 | 
						|
 | 
						|
#import [LIBC-file cdecl [
 | 
						|
 | 
						|
    ; Error handling
 | 
						|
 | 
						|
    form-error: "strerror" [  ; Return error description.
 | 
						|
        code            [integer!]
 | 
						|
        return:         [c-string!]
 | 
						|
    ]
 | 
						|
    print-error: "perror" [  ; Print error to standard error output.
 | 
						|
        string          [c-string!]
 | 
						|
    ]
 | 
						|
 | 
						|
 | 
						|
    ; Memory management
 | 
						|
 | 
						|
    make: "calloc" [  ; Allocate zero-filled memory.
 | 
						|
        chunks          [size!]
 | 
						|
        size            [size!]
 | 
						|
        return:         [binary!]
 | 
						|
    ]
 | 
						|
    resize: "realloc" [  ; Resize memory allocation.
 | 
						|
        memory          [binary!]
 | 
						|
        size            [size!]
 | 
						|
        return:         [binary!]
 | 
						|
    ]
 | 
						|
 ]
 | 
						|
 
 | 
						|
 JVM!: alias struct! [
 | 
						|
    reserved0                   [int-ptr!]
 | 
						|
    reserved1                   [int-ptr!]
 | 
						|
    reserved2                   [int-ptr!]
 | 
						|
    
 | 
						|
    DestroyJavaVM               [function! [[JNICALL] vm [JVM-ptr!] return: [jint!]]]
 | 
						|
    AttachCurrentThread         [function! [[JNICALL] vm [JVM-ptr!] penv [struct! [p [int-ptr!]]] args [byte-ptr!] return: [jint!]]]
 | 
						|
    DetachCurrentThread         [function! [[JNICALL] vm [JVM-ptr!] return: [jint!]]]
 | 
						|
    GetEnv                      [function! [[JNICALL] vm [JVM-ptr!] penv [struct! [p [int-ptr!]]] version [integer!] return: [jint!]]]
 | 
						|
    AttachCurrentThreadAsDaemon [function! [[JNICALL] vm [JVM-ptr!] penv [struct! [p [int-ptr!]]] args [byte-ptr!] return: [jint!]]]
 | 
						|
]
 | 
						|
 | 
						|
 ;just some datatypes for testing:
 | 
						|
 
 | 
						|
 #some-hash
 | 
						|
 10-1-2013
 | 
						|
 quit
 | 
						|
 
 | 
						|
 ;binary:
 | 
						|
 #{00FF0000}
 | 
						|
 #{00FF0000 FF000000}
 | 
						|
 #{00FF0000	FF000000} ;with tab instead of space
 | 
						|
 2#{00001111}
 | 
						|
 64#{/wAAAA==}
 | 
						|
 64#{/wAAA A==} ;with space	 inside
 | 
						|
 64#{/wAAA	A==} ;with tab inside
 | 
						|
 
 | 
						|
 
 | 
						|
 ;string with char
 | 
						|
 {bla ^(ff) foo}
 | 
						|
 {bla ^(( foo}
 | 
						|
 ;some numbers:
 | 
						|
 12
 | 
						|
 1'000
 | 
						|
 1.2
 | 
						|
 FF00FF00h
 | 
						|
 
 | 
						|
 ;some tests of hexa number notation with not common ending
 | 
						|
 [ff00h ff00h] ff00h{} FFh"foo" 00h(1 + 2) (AEh)
 | 
						|
 | 
						|
;normal words:
 | 
						|
foo char
 | 
						|
 | 
						|
;get-word
 | 
						|
:foo
 | 
						|
 
 | 
						|
;lit-word:
 | 
						|
'foo 'foo
 | 
						|
 | 
						|
to-integer foo
 | 
						|
foo/(a + 1)/b
 | 
						|
 | 
						|
call/output reform ['which interpreter] path: copy ""
 | 
						|
 | 
						|
 version-1.1:   00010001h
 | 
						|
 
 | 
						|
 #if type = 'exe [
 | 
						|
    push system/stack/frame                 ;-- save previous frame pointer
 | 
						|
    system/stack/frame: system/stack/top    ;-- @@ reposition frame pointer just after the catch flag
 | 
						|
]
 | 
						|
push CATCH_ALL                              ;-- exceptions root barrier
 | 
						|
push 0                                      ;-- keep stack aligned on 64-bit |