codigo0/node_modules/highlight.js/es/languages/haxe.js
planetazuzu 5d7a6500fe refactor: Fase 1 - Clean Architecture, refactorización modular y eliminación de duplicidades
-  Ticket 1.1: Estructura Clean Architecture en backend
-  Ticket 1.2: Schemas Zod compartidos
-  Ticket 1.3: Refactorización drugs.ts (1362 → 8 archivos modulares)
-  Ticket 1.4: Refactorización procedures.ts (3583 → 6 archivos modulares)
-  Ticket 1.5: Eliminación de duplicidades (~50 líneas)

Cambios principales:
- Creada estructura Clean Architecture en backend/src/
- Schemas Zod compartidos en backend/src/shared/schemas/
- Refactorización modular de drugs y procedures
- Utilidades genéricas en src/utils/ (filter, validation)
- Eliminados scripts obsoletos y documentación antigua
- Corregidos errores: QueryClient, import test-error-handling
- Build verificado y funcionando correctamente
2026-01-25 21:09:47 +01:00

168 lines
4.3 KiB
JavaScript

/*
Language: Haxe
Description: Haxe is an open source toolkit based on a modern, high level, strictly typed programming language.
Author: Christopher Kaster <ikasoki@gmail.com> (Based on the actionscript.js language file by Alexander Myadzel)
Contributors: Kenton Hamaluik <kentonh@gmail.com>
Website: https://haxe.org
Category: system
*/
function haxe(hljs) {
const IDENT_RE = '[a-zA-Z_$][a-zA-Z0-9_$]*';
// C_NUMBER_RE with underscores and literal suffixes
const HAXE_NUMBER_RE = /(-?)(\b0[xX][a-fA-F0-9_]+|(\b\d+(\.[\d_]*)?|\.[\d_]+)(([eE][-+]?\d+)|i32|u32|i64|f64)?)/;
const HAXE_BASIC_TYPES = 'Int Float String Bool Dynamic Void Array ';
return {
name: 'Haxe',
aliases: [ 'hx' ],
keywords: {
keyword: 'abstract break case cast catch continue default do dynamic else enum extern '
+ 'final for function here if import in inline is macro never new override package private get set '
+ 'public return static super switch this throw trace try typedef untyped using var while '
+ HAXE_BASIC_TYPES,
built_in:
'trace this',
literal:
'true false null _'
},
contains: [
{
className: 'string', // interpolate-able strings
begin: '\'',
end: '\'',
contains: [
hljs.BACKSLASH_ESCAPE,
{
className: 'subst', // interpolation
begin: /\$\{/,
end: /\}/
},
{
className: 'subst', // interpolation
begin: /\$/,
end: /\W\}/
}
]
},
hljs.QUOTE_STRING_MODE,
hljs.C_LINE_COMMENT_MODE,
hljs.C_BLOCK_COMMENT_MODE,
{
className: 'number',
begin: HAXE_NUMBER_RE,
relevance: 0
},
{
className: 'variable',
begin: "\\$" + IDENT_RE,
},
{
className: 'meta', // compiler meta
begin: /@:?/,
end: /\(|$/,
excludeEnd: true,
},
{
className: 'meta', // compiler conditionals
begin: '#',
end: '$',
keywords: { keyword: 'if else elseif end error' }
},
{
className: 'type', // function types
begin: /:[ \t]*/,
end: /[^A-Za-z0-9_ \t\->]/,
excludeBegin: true,
excludeEnd: true,
relevance: 0
},
{
className: 'type', // types
begin: /:[ \t]*/,
end: /\W/,
excludeBegin: true,
excludeEnd: true
},
{
className: 'type', // instantiation
beginKeywords: 'new',
end: /\W/,
excludeBegin: true,
excludeEnd: true
},
{
className: 'title.class', // enums
beginKeywords: 'enum',
end: /\{/,
contains: [ hljs.TITLE_MODE ]
},
{
className: 'title.class', // abstracts
begin: '\\babstract\\b(?=\\s*' + hljs.IDENT_RE + '\\s*\\()',
end: /[\{$]/,
contains: [
{
className: 'type',
begin: /\(/,
end: /\)/,
excludeBegin: true,
excludeEnd: true
},
{
className: 'type',
begin: /from +/,
end: /\W/,
excludeBegin: true,
excludeEnd: true
},
{
className: 'type',
begin: /to +/,
end: /\W/,
excludeBegin: true,
excludeEnd: true
},
hljs.TITLE_MODE
],
keywords: { keyword: 'abstract from to' }
},
{
className: 'title.class', // classes
begin: /\b(class|interface) +/,
end: /[\{$]/,
excludeEnd: true,
keywords: 'class interface',
contains: [
{
className: 'keyword',
begin: /\b(extends|implements) +/,
keywords: 'extends implements',
contains: [
{
className: 'type',
begin: hljs.IDENT_RE,
relevance: 0
}
]
},
hljs.TITLE_MODE
]
},
{
className: 'title.function',
beginKeywords: 'function',
end: /\(/,
excludeEnd: true,
illegal: /\S/,
contains: [ hljs.TITLE_MODE ]
}
],
illegal: /<\//
};
}
export { haxe as default };