| " Vim syntax file |
| " Language: Euphoria 3.1.1 - supports DOS - (http://www.rapideuphoria.com/) |
| " Maintainer: Shian Lee |
| " Last Change: 2014 Feb 24 (for Vim 7.4) |
| " Remark: Euphoria has two syntax files, euphoria3.vim and euphoria4.vim; |
| " For details see :help ft-euphoria-syntax |
| |
| " Quit if a (custom) syntax file was already loaded (compatible with Vim 5.8): |
| if version < 600 |
| syntax clear |
| elseif exists("b:current_syntax") |
| finish |
| endif |
| |
| " Reset compatible-options to Vim default value, just in case: |
| let s:save_cpo = &cpo |
| set cpo&vim |
| |
| " Should suffice for very long expressions: |
| syn sync lines=40 |
| |
| " Euphoria is a case-sensitive language (with only 4 builtin types): |
| syntax case match |
| |
| " Keywords/Builtins for Debug - from $EUDIR/bin/keywords.e: |
| syn keyword euphoria3Debug with without trace profile |
| syn keyword euphoria3Debug profile_time warning type_check |
| |
| " Keywords (Statments) - from $EUDIR/bin/keywords.e: |
| syn keyword euphoria3Keyword if end then procedure else for return |
| syn keyword euphoria3Keyword do elsif while type constant to and or |
| syn keyword euphoria3Keyword exit function global by not include |
| syn keyword euphoria3Keyword xor |
| |
| " Builtins (Identifiers) - from $EUDIR/bin/keywords.e: |
| syn keyword euphoria3Builtin length puts integer sequence position object |
| syn keyword euphoria3Builtin append prepend print printf |
| syn keyword euphoria3Builtin clear_screen floor getc gets get_key |
| syn keyword euphoria3Builtin rand repeat atom compare find match |
| syn keyword euphoria3Builtin time command_line open close getenv |
| syn keyword euphoria3Builtin sqrt sin cos tan log system date remainder |
| syn keyword euphoria3Builtin power machine_func machine_proc abort peek poke |
| syn keyword euphoria3Builtin call sprintf arctan and_bits or_bits xor_bits |
| syn keyword euphoria3Builtin not_bits pixel get_pixel mem_copy mem_set |
| syn keyword euphoria3Builtin c_proc c_func routine_id call_proc call_func |
| syn keyword euphoria3Builtin poke4 peek4s peek4u equal system_exec |
| syn keyword euphoria3Builtin platform task_create task_schedule task_yield |
| syn keyword euphoria3Builtin task_self task_suspend task_list |
| syn keyword euphoria3Builtin task_status task_clock_stop task_clock_start |
| syn keyword euphoria3Builtin find_from match_from |
| " Builtins (Identifiers) shortcuts for length() and print(): |
| syn match euphoria3Builtin "\$" |
| syn match euphoria3Builtin "?" |
| |
| " Library Identifiers (Function) - from $EUDIR/doc/library.doc: |
| syn keyword euphoria3Library reverse sort custom_sort lower upper |
| syn keyword euphoria3Library wildcard_match wildcard_file arcsin |
| syn keyword euphoria3Library arccos PI flush lock_file unlock_file |
| syn keyword euphoria3Library pretty_print sprint get_bytes prompt_string |
| syn keyword euphoria3Library wait_key get prompt_number value seek where |
| syn keyword euphoria3Library current_dir chdir dir walk_dir allow_break |
| syn keyword euphoria3Library check_break get_mouse mouse_events mouse_pointer |
| syn keyword euphoria3Library tick_rate sleep get_position graphics_mode |
| syn keyword euphoria3Library video_config scroll wrap text_color bk_color |
| syn keyword euphoria3Library palette all_palette get_all_palette read_bitmap |
| syn keyword euphoria3Library save_bitmap get_active_page set_active_page |
| syn keyword euphoria3Library get_display_page set_display_page sound |
| syn keyword euphoria3Library cursor text_rows get_screen_char put_screen_char |
| syn keyword euphoria3Library save_text_image display_text_image draw_line |
| syn keyword euphoria3Library polygon ellipse save_screen save_image display_image |
| syn keyword euphoria3Library dos_interrupt allocate free allocate_low free_low |
| syn keyword euphoria3Library allocate_string register_block unregister_block |
| syn keyword euphoria3Library get_vector set_vector lock_memory int_to_bytes |
| syn keyword euphoria3Library bytes_to_int int_to_bits bits_to_int atom_to_float64 |
| syn keyword euphoria3Library atom_to_float32 float64_to_atom float32_to_atom |
| syn keyword euphoria3Library set_rand use_vesa crash_file crash_message |
| syn keyword euphoria3Library crash_routine open_dll define_c_proc define_c_func |
| syn keyword euphoria3Library define_c_var call_back message_box free_console |
| syn keyword euphoria3Library instance |
| |
| " Library Identifiers (Function) - from $EUDIR/doc/database.doc: |
| syn keyword euphoria3Library db_create db_open db_select db_close db_create_table |
| syn keyword euphoria3Library db_select_table db_rename_table db_delete_table |
| syn keyword euphoria3Library db_table_list db_table_size db_find_key db_record_key |
| syn keyword euphoria3Library db_record_data db_insert db_delete_record |
| syn keyword euphoria3Library db_replace_data db_compress db_dump db_fatal_id |
| |
| " Linux shell comment (#!...): |
| syn match euphoria3Comment "\%^#!.*$" |
| " Comment on one line: |
| syn region euphoria3Comment start=/--/ end=/$/ |
| |
| " Delimiters and brackets: |
| syn match euphoria3Delimit "[([\])]" |
| syn match euphoria3Delimit "\.\." |
| syn match euphoria3Operator "[{}]" |
| |
| " Character constant: |
| syn region euphoria3Char start=/'/ skip=/\\'\|\\\\/ end=/'/ oneline |
| |
| " String constant: |
| syn region euphoria3String start=/"/ skip=/\\"\|\\\\/ end=/"/ oneline |
| |
| " Hexadecimal integer: |
| syn match euphoria3Number "#[0-9A-F]\+\>" |
| |
| " Integer/Floating point without a dot: |
| syn match euphoria3Number "\<\d\+\>" |
| " Floating point with dot: |
| syn match euphoria3Number "\<\d\+\.\d*\>" |
| " Floating point starting with a dot: |
| syn match euphoria3Number "\.\d\+\>" |
| " Boolean constants: |
| syn keyword euphoria3Boolean true TRUE false FALSE |
| |
| " Define the default highlighting. |
| " Only used when an item doesn't have highlighting yet: |
| hi def link euphoria3Comment Comment |
| hi def link euphoria3String String |
| hi def link euphoria3Char Character |
| hi def link euphoria3Number Number |
| hi def link euphoria3Boolean Boolean |
| hi def link euphoria3Builtin Identifier |
| hi def link euphoria3Library Function |
| hi def link euphoria3Keyword Statement |
| hi def link euphoria3Operator Statement |
| hi def link euphoria3Debug Debug |
| hi def link euphoria3Delimit Delimiter |
| |
| let b:current_syntax = "euphoria3" |
| |
| " Restore current compatible-options: |
| let &cpo = s:save_cpo |
| unlet s:save_cpo |
| |