-
Notifications
You must be signed in to change notification settings - Fork 2
/
js.php
62 lines (55 loc) · 1.7 KB
/
js.php
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
<?php
// Reúne todos os arquivo JS para economizar requisições HTTP
$arquivos = array(
'dados/Editor.js',
'dados/Livro.js',
'dados/Compilador.js',
'dados/CompiladorParalelo.js',
'dados/Elemento.js',
'dados/Indice.js',
'dados/Pagina.js',
'dados/Anexo.js',
'dados/Arquivo.js',
'dados/Acao.js',
'dados/Sintaxe.js',
'interface/JanelaBasica.js',
'interface/Interface.js',
'interface/InterfaceAbas.js',
'interface/InterfaceMenus.js',
'interface/InterfacePaginas.js',
'interface/InterfaceIndices.js',
'interface/InterfaceAnexos.js',
'interface/InterfaceEdicao.js',
'interface/JanelaAbrir.js',
'interface/JanelaImagem.js',
'interface/JanelaAjuda.js',
'interface/JanelaDicas.js',
'interface/JanelaSintaxe.js',
'interface/JanelaDesenho.js',
'interface/JanelaDownload.js',
'interface/JanelaFeedback.js',
'interface/Ordenavel.js',
'editor.js'
);
$js = array();
foreach ($arquivos as $cada)
$js[] = getCabecalho($cada) . file_get_contents('js/' . $cada);
$js = implode("\n", $js);
header('Content-type: application/javascript');
// Gera a array de bytes do programa compilado para HP
// Ignora os 34 primeiros bytes, pois é onde o livre será inserido
$compiladoStr = str_split(substr(file_get_contents('COMPILADO.hp'), 34));
$compilado = array();
foreach ($compiladoStr as $c)
$compilado[] = ord($c);
$compilado = implode(', ', $compilado);
// Gera um comentário de cabeçalho para cada arquivo
function getCabecalho($nome) {
$estrelas = str_repeat('*', strlen($nome)+4);
$espacos = str_repeat(' ', strlen($nome)+2);
return "/$estrelas\n *$espacos*\n * $nome *\n *$espacos*\n $estrelas/\n\n";
}
?>"use strict";
<?=$js?>
<?=getCabecalho('COMPILADO.hp')?>
var COMPILADO = new Uint8Array([<?=$compilado?>])