├── fontes
├── estruturas
│ ├── lmht
│ │ ├── index.ts
│ │ ├── area.ts
│ │ ├── aspas.ts
│ │ ├── celula.ts
│ │ ├── corpo.ts
│ │ ├── linha.ts
│ │ ├── lmht.ts
│ │ ├── marca.ts
│ │ ├── tempo.ts
│ │ ├── termo.ts
│ │ ├── aparte.ts
│ │ ├── artigo.ts
│ │ ├── audio.ts
│ │ ├── botao.ts
│ │ ├── cabeca.ts
│ │ ├── campo.ts
│ │ ├── canvas.ts
│ │ ├── codigo.ts
│ │ ├── coluna.ts
│ │ ├── divisao.ts
│ │ ├── excluido.ts
│ │ ├── exemplo.ts
│ │ ├── imagem.ts
│ │ ├── italico.ts
│ │ ├── ligacao.ts
│ │ ├── medidor.ts
│ │ ├── objeto.ts
│ │ ├── opcao.ts
│ │ ├── paragrafo.ts
│ │ ├── recurso.ts
│ │ ├── riscado.ts
│ │ ├── script.ts
│ │ ├── secao.ts
│ │ ├── tabela.ts
│ │ ├── teclado.ts
│ │ ├── titulo1.ts
│ │ ├── titulo2.ts
│ │ ├── titulo3.ts
│ │ ├── titulo4.ts
│ │ ├── titulo5.ts
│ │ ├── titulo6.ts
│ │ ├── variavel.ts
│ │ ├── abreviacao.ts
│ │ ├── campos.ts
│ │ ├── citacao.ts
│ │ ├── definicao.ts
│ │ ├── detalhes.ts
│ │ ├── endereco.ts
│ │ ├── etiqueta.ts
│ │ ├── formulario.ts
│ │ ├── invisivel.ts
│ │ ├── item-lista.ts
│ │ ├── navegacao.ts
│ │ ├── negrito.ts
│ │ ├── principal.ts
│ │ ├── selecao.ts
│ │ ├── sublinhado.ts
│ │ ├── subscrito.ts
│ │ ├── sumario.ts
│ │ ├── area-texto.ts
│ │ ├── lista-numerada.ts
│ │ ├── lista-simples.ts
│ │ ├── preformatado.ts
│ │ ├── progresso.ts
│ │ ├── quebra-linha.ts
│ │ ├── sem-script.ts
│ │ ├── sobrescrito.ts
│ │ ├── cabeca-tabela.ts
│ │ ├── corpo-tabela.ts
│ │ ├── envelope-texto.ts
│ │ ├── grupo-colunas.ts
│ │ ├── grupo-opcoes.ts
│ │ ├── linha-horizontal.ts
│ │ ├── lista-definicoes.ts
│ │ ├── texto-pequeno.ts
│ │ ├── lista-pesquisavel.ts
│ │ └── quebra-linha-oportuna.ts
│ ├── pragmas-estrutura.ts
│ ├── estrutura.ts
│ ├── seletor-estruturas-html.ts
│ └── seletor-estruturas-lmht.ts
├── importador
│ └── index.ts
├── declaracoes
│ ├── declaracao.ts
│ ├── index.ts
│ ├── declaracao-variavel.ts
│ └── bloco-declaracao.ts
├── lexador
│ ├── index.ts
│ ├── palavras-reservadas
│ │ └── index.ts
│ ├── erro-lexador.ts
│ ├── README.md
│ └── simbolo.ts
├── tipos-de-simbolos
│ └── index.ts
├── valores
│ ├── valor.ts
│ ├── valor-virgula.ts
│ ├── valor-abreviacao.ts
│ ├── metodos
│ │ ├── foles
│ │ │ ├── metodo.ts
│ │ │ ├── hexadecimal-cor.ts
│ │ │ ├── url.ts
│ │ │ ├── pintura.ts
│ │ │ ├── escalamento-eixo-z.ts
│ │ │ ├── escalamento-vertical.ts
│ │ │ ├── escalamento-horizontal.ts
│ │ │ ├── rgb.ts
│ │ │ ├── rgba.ts
│ │ │ ├── encaixar-conteudo.ts
│ │ │ ├── espirrar.ts
│ │ │ ├── poligono.ts
│ │ │ ├── estilistico.ts
│ │ │ ├── linear.ts
│ │ │ ├── hsl.ts
│ │ │ ├── variar-caractere.ts
│ │ │ ├── definir-imagem.ts
│ │ │ ├── escalamento-3d.ts
│ │ │ ├── escalamento.ts
│ │ │ ├── repetir-gradiente-conico.ts
│ │ │ ├── sepia.ts
│ │ │ ├── borrar.ts
│ │ │ ├── inverter.ts
│ │ │ ├── opacar.ts
│ │ │ ├── saturar.ts
│ │ │ ├── brilho.ts
│ │ │ ├── contraste.ts
│ │ │ ├── escala-cinza.ts
│ │ │ ├── translacao-eixo-z.ts
│ │ │ ├── translacao-vertical.ts
│ │ │ ├── perspectivar.ts
│ │ │ ├── translacao-horizontal.ts
│ │ │ ├── elemento.ts
│ │ │ ├── xywh.ts
│ │ │ ├── inserir.ts
│ │ │ ├── gradiente-conico.ts
│ │ │ ├── retangulo.ts
│ │ │ ├── rotacionar.ts
│ │ │ ├── inclinar-vertical.ts
│ │ │ ├── curva-cubica.ts
│ │ │ ├── inclinar-horizontal.ts
│ │ │ ├── rotacionar-eixo-z.ts
│ │ │ └── rotacionar-vertical.ts
│ │ └── css
│ │ │ ├── metodo-css.ts
│ │ │ ├── paint.ts
│ │ │ ├── scaleY.ts
│ │ │ ├── scaleZ.ts
│ │ │ ├── scaleX.ts
│ │ │ ├── fit-content.ts
│ │ │ ├── swash.ts
│ │ │ ├── stylistic.ts
│ │ │ ├── polygon.ts
│ │ │ ├── character-variant.ts
│ │ │ ├── scale3d.ts
│ │ │ ├── scale.ts
│ │ │ ├── sepia.ts
│ │ │ ├── blur.ts
│ │ │ ├── invert.ts
│ │ │ ├── opacity.ts
│ │ │ ├── rotate.ts
│ │ │ ├── saturate.ts
│ │ │ ├── constrast.ts
│ │ │ ├── brightness.ts
│ │ │ ├── grayscale.ts
│ │ │ ├── skewY.ts
│ │ │ ├── rotateZ.ts
│ │ │ ├── skewX.ts
│ │ │ ├── hue-rotate.ts
│ │ │ ├── rotateY.ts
│ │ │ ├── rotateX.ts
│ │ │ ├── translateZ.ts
│ │ │ ├── annotation.ts
│ │ │ ├── perspective.ts
│ │ │ ├── translateY.ts
│ │ │ ├── translateX.ts
│ │ │ ├── repeating-conic-gradient.ts
│ │ │ ├── element.ts
│ │ │ ├── xywh.ts
│ │ │ ├── ornaments.ts
│ │ │ ├── steps.ts
│ │ │ ├── conic-gradient.ts
│ │ │ └── cubic-bezier.ts
│ ├── index.ts
│ ├── valor-texto.ts
│ ├── valor-qualitativo.ts
│ ├── referencia-variavel.ts
│ ├── seletor-valor.ts
│ ├── valor-numerico.ts
│ └── seletor-valor-reverso.ts
├── resolvedores
│ ├── index.ts
│ └── README.md
├── avaliador-sintatico
│ ├── index.ts
│ └── erro-avaliador-sintatico.ts
├── gerador-mapa
│ └── README.md
├── interfaces
│ ├── resultado-lexador-interface.ts
│ ├── avaliador-sintatico-interface.ts
│ ├── index.ts
│ ├── simbolo-interface.ts
│ ├── mapa-origens-interface.ts
│ ├── importador-interface.ts
│ └── lexador-interface.ts
├── index.ts
├── modificadores
│ ├── superclasse
│ │ ├── index.ts
│ │ ├── pragmas-modificador.ts
│ │ ├── modificador.ts
│ │ ├── seletor-modificador.ts
│ │ └── seletor-reverso-modificador.ts
│ ├── validacoes
│ │ ├── string.ts
│ │ ├── proibir-quantificador.ts
│ │ └── quantificador.ts
│ ├── atributos
│ │ ├── globais.ts
│ │ ├── estilo.ts
│ │ └── fontes.ts
│ ├── estilo-lista-tipo.ts
│ ├── cor.ts
│ ├── cor-fundo.ts
│ ├── dicionario
│ │ └── dicionario-suplementar-metodos.ts
│ ├── cor-borda-direita.ts
│ ├── cor-borda-superior.ts
│ ├── regras-cor-coluna.ts
│ ├── cor-borda-em-bloco.ts
│ ├── cor-borda-em-linha.ts
│ ├── cor-borda-esquerda.ts
│ ├── cor-borda-inferior.ts
│ ├── cor-fim-borda-em-bloco.ts
│ ├── cor-fim-borda-em-linha.ts
│ ├── reiniciar-tudo.ts
│ ├── recortar.ts
│ ├── cor-enfase-texto.ts
│ ├── cor-cursor.ts
│ ├── estilo-borda-direita.ts
│ ├── regras-estilo-coluna.ts
│ ├── cor-destaque.ts
│ ├── decoracao-cor-texto.ts
│ ├── estilo-borda-em-bloco.ts
│ ├── estilo-borda-em-linha.ts
│ ├── estilo-borda-esquerda.ts
│ ├── estilo-borda-inferior.ts
│ ├── estilo-borda-superior.ts
│ ├── cor-contorno.ts
│ ├── posicao-mascara.ts
│ ├── posicao-objeto.ts
│ ├── cor-barra-rolagem.ts
│ ├── isolamento.ts
│ ├── cor-inicio-borda-em-bloco.ts
│ ├── cor-inicio-borda-em-linha.ts
│ ├── design-tabela.ts
│ ├── direcao.ts
│ ├── estender-coluna.ts
│ ├── hifens.ts
│ ├── recolher-borda.ts
│ ├── celulas-vazias.ts
│ ├── ordenar.ts
│ ├── comportamento-rolagem.ts
│ ├── filtro.ts
│ ├── fixar-fundo.ts
│ ├── fluxo-em-grade.ts
│ ├── esquema-cor.ts
│ ├── flex-reduzir.ts
│ ├── largura-barra-rolagem.ts
│ ├── tipo-mascara.ts
│ ├── agrupar-palavra.ts
│ ├── preencher-coluna.ts
│ ├── flex-crescimento.ts
│ ├── linhas-superiores.ts
│ ├── visibilidade-fundo.ts
│ ├── linhas-inferiores.ts
│ ├── tamanho-caixa.ts
│ ├── visibilidade.ts
│ ├── sombra-caixa.ts
│ ├── transformar-estilo.ts
│ ├── agrupar-vazamento.ts
│ ├── posicao.ts
│ ├── flex-agrupar.ts
│ ├── modo-escrita.ts
│ ├── quebrar-palavra.ts
│ ├── calha-barra-rolagem.ts
│ ├── estilo-fim-borda-em-bloco.ts
│ ├── estilo-fim-borda-em-linha.ts
│ ├── ordem-pintura.ts
│ ├── quebrar-linha.ts
│ ├── sombra-texto.ts
│ ├── tabulacao.ts
│ └── forma-margem.ts
├── seletores
│ ├── pragmas-seletor.ts
│ ├── index.ts
│ ├── seletor-espaco-reservado.ts
│ ├── seletor.ts
│ ├── seletor-id.ts
│ └── seletor-classe.ts
├── listas
│ ├── valores-personalizados.d.ts
│ ├── valores-numericos.d.ts
│ └── valor-string.ts
├── pseudoclasses
│ ├── link.ts
│ ├── ativo.ts
│ ├── foco.ts
│ ├── pausa.ts
│ ├── sobre.ts
│ ├── vazio.ts
│ ├── atual.ts
│ ├── escopo.ts
│ ├── futuro.ts
│ ├── passado.ts
│ ├── em-branco.ts
│ ├── invalido.ts
│ ├── n-filho.ts
│ ├── n-tipo.ts
│ ├── visitado.ts
│ ├── opcional.ts
│ ├── todo-link.ts
│ ├── estilo-alvo.ts
│ ├── habilitado.ts
│ ├── link-local.ts
│ ├── obrigatorio.ts
│ ├── reproduzir.ts
│ ├── unico-tipo.ts
│ ├── verificado.ts
│ ├── desabilitado.ts
│ ├── direcao-texto.ts
│ ├── estilo-padrao.ts
│ ├── filho-unico.ts
│ ├── idioma-global.ts
│ ├── ler-escrever.ts
│ ├── ultimo-filho.ts
│ ├── ultimo-tipo.ts
│ ├── alvo-destaque.ts
│ ├── estrutura-estilo.ts
│ ├── foco-interno.ts
│ ├── foco-visivel.ts
│ ├── n-ultimo-tipo.ts
│ ├── primeiro-tipo.ts
│ ├── dentro-do-limite.ts
│ ├── fora-do-limite.ts
│ ├── indeterminado.ts
│ ├── n-último-filho.ts
│ ├── primeiro-filho.ts
│ ├── somente-leitura.ts
│ ├── usuario-invalido.ts
│ ├── local-reservado-mostrado.ts
│ ├── valido.ts
│ ├── seletor-pseudoclasse.ts
│ └── pseudoclasse.ts
├── exportador
│ └── README.md
└── tradutores
│ └── README.md
├── bin
├── foles.cmd
├── foles-ts.cmd
├── foles
└── foles-ts
├── .prettierrc
├── exemplos
├── importacao.foles
├── mapas-fontes
│ ├── exemplo.foles
│ ├── exemplo.html
│ ├── exemplo.css.map
│ └── exemplo.css
├── _parcial.foles
├── exemplo5.foles
├── reverso
│ ├── aninhamentos.css
│ ├── exemplo-codigo.css
│ └── exemplo-liquido.css
├── exemplo4.foles
├── importacao.css
├── exemplo6.foles
├── exemplo.foles
└── exemplo7.foles
├── testes
└── modelos
│ ├── arquivo-modelo.css
│ └── arquivo-modelo.foles
├── recursos
└── imagens
│ └── icone-foles.png
├── jest.config.ts
├── .release-it.json
├── tsconfig.json
└── .github
├── dependabot.yml
└── workflows
└── principal.yml
/fontes/estruturas/lmht/index.ts:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/bin/foles.cmd:
--------------------------------------------------------------------------------
1 | node ..\execucao.js %*
--------------------------------------------------------------------------------
/.prettierrc:
--------------------------------------------------------------------------------
1 | {
2 | "tabWidth": 4
3 | }
--------------------------------------------------------------------------------
/bin/foles-ts.cmd:
--------------------------------------------------------------------------------
1 | ts-node.cmd execucao.ts %*
--------------------------------------------------------------------------------
/exemplos/importacao.foles:
--------------------------------------------------------------------------------
1 | @importar "_parcial"
--------------------------------------------------------------------------------
/fontes/importador/index.ts:
--------------------------------------------------------------------------------
1 | export * from "./importador";
2 |
--------------------------------------------------------------------------------
/bin/foles:
--------------------------------------------------------------------------------
1 | #! /usr/bin/env node
2 |
3 | require('../execucao.js');
--------------------------------------------------------------------------------
/bin/foles-ts:
--------------------------------------------------------------------------------
1 | #! /usr/bin/env ts-node
2 |
3 | require('../execucao');
--------------------------------------------------------------------------------
/fontes/declaracoes/declaracao.ts:
--------------------------------------------------------------------------------
1 | export abstract class Declaracao {}
2 |
--------------------------------------------------------------------------------
/testes/modelos/arquivo-modelo.css:
--------------------------------------------------------------------------------
1 | html {
2 | max-width: 140px;
3 | }
4 |
--------------------------------------------------------------------------------
/fontes/lexador/index.ts:
--------------------------------------------------------------------------------
1 | export * from "./lexador";
2 | export * from "./simbolo";
3 |
--------------------------------------------------------------------------------
/exemplos/mapas-fontes/exemplo.foles:
--------------------------------------------------------------------------------
1 | lmht {
2 | largura-borda-direita: 130mm;
3 | }
4 |
--------------------------------------------------------------------------------
/fontes/tipos-de-simbolos/index.ts:
--------------------------------------------------------------------------------
1 | export * from "./css";
2 | export * from "./foles";
3 |
--------------------------------------------------------------------------------
/fontes/lexador/palavras-reservadas/index.ts:
--------------------------------------------------------------------------------
1 | export * from "./css";
2 | export * from "./foles";
3 |
--------------------------------------------------------------------------------
/fontes/valores/valor.ts:
--------------------------------------------------------------------------------
1 | export abstract class Valor {
2 | abstract paraTexto(): string;
3 | }
4 |
--------------------------------------------------------------------------------
/fontes/resolvedores/index.ts:
--------------------------------------------------------------------------------
1 | export * from "./resolvedor";
2 | export * from "./resolvedor-reverso";
3 |
--------------------------------------------------------------------------------
/recursos/imagens/icone-foles.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/DesignLiquido/FolEs/HEAD/recursos/imagens/icone-foles.png
--------------------------------------------------------------------------------
/fontes/avaliador-sintatico/index.ts:
--------------------------------------------------------------------------------
1 | export * from "./avaliador-sintatico";
2 | export * from "./erro-avaliador-sintatico";
3 |
--------------------------------------------------------------------------------
/exemplos/_parcial.foles:
--------------------------------------------------------------------------------
1 | lmht {
2 | tempo-transicao: curva-cúbica(0.42, 0.0, 1.0, 1.0);
3 | cor-destaque: rgb(100, 200, 300);
4 | }
--------------------------------------------------------------------------------
/fontes/gerador-mapa/README.md:
--------------------------------------------------------------------------------
1 | # Gerador de Mapa de CSS
2 |
3 | Inspiração: https://www.mattzeunert.com/2016/02/14/how-do-source-maps-work.html
--------------------------------------------------------------------------------
/fontes/declaracoes/index.ts:
--------------------------------------------------------------------------------
1 | export * from "./bloco-declaracao";
2 | export * from "./declaracao";
3 | export * from "./declaracao-variavel";
4 |
--------------------------------------------------------------------------------
/fontes/lexador/erro-lexador.ts:
--------------------------------------------------------------------------------
1 | export interface ErroLexador {
2 | linha: number;
3 | caractere: string;
4 | mensagem: string;
5 | }
6 |
--------------------------------------------------------------------------------
/fontes/interfaces/resultado-lexador-interface.ts:
--------------------------------------------------------------------------------
1 | export interface ResultadoLexadorInterface {
2 | simbolos: any[];
3 | erros: any[];
4 | }
5 |
--------------------------------------------------------------------------------
/fontes/index.ts:
--------------------------------------------------------------------------------
1 | export * from './foles';
2 | export * from './lexador';
3 | export * from './avaliador-sintatico';
4 | export * from './resolvedores';
5 |
--------------------------------------------------------------------------------
/fontes/lexador/README.md:
--------------------------------------------------------------------------------
1 | # Lexador
2 |
3 | O Lexador de FolEs é fortemente baseado no lexador padrão de [Delégua](https://github.com/DesignLiquido/delegua).
--------------------------------------------------------------------------------
/fontes/modificadores/superclasse/index.ts:
--------------------------------------------------------------------------------
1 | export * from "./modificador";
2 | export * from "./pragmas-modificador";
3 | export * from "./seletor-modificador";
4 |
--------------------------------------------------------------------------------
/fontes/seletores/pragmas-seletor.ts:
--------------------------------------------------------------------------------
1 | export interface PragmasSeletor {
2 | linha: number;
3 | colunaInicial: number;
4 | colunaFinal: number;
5 | }
6 |
--------------------------------------------------------------------------------
/fontes/estruturas/pragmas-estrutura.ts:
--------------------------------------------------------------------------------
1 | export interface PragmasEstrutura {
2 | linha: number;
3 | colunaInicial: number;
4 | colunaFinal: number;
5 | }
6 |
--------------------------------------------------------------------------------
/fontes/modificadores/superclasse/pragmas-modificador.ts:
--------------------------------------------------------------------------------
1 | export interface PragmasModificador {
2 | linha: number;
3 | colunaInicial: number;
4 | colunaFinal: number;
5 | }
6 |
--------------------------------------------------------------------------------
/fontes/valores/valor-virgula.ts:
--------------------------------------------------------------------------------
1 | import { Valor } from "./valor";
2 |
3 | export class ValorVirgula extends Valor {
4 | paraTexto(): string {
5 | return ",";
6 | }
7 | }
8 |
--------------------------------------------------------------------------------
/exemplos/mapas-fontes/exemplo.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 | Teste
7 |
8 |
--------------------------------------------------------------------------------
/fontes/valores/valor-abreviacao.ts:
--------------------------------------------------------------------------------
1 | import { Valor } from "./valor";
2 |
3 | export class ValorAbreviacao extends Valor {
4 | paraTexto(): string {
5 | return "/";
6 | }
7 | }
8 |
--------------------------------------------------------------------------------
/fontes/valores/metodos/foles/metodo.ts:
--------------------------------------------------------------------------------
1 | import { Valor } from "../../valor";
2 |
3 | export abstract class Metodo extends Valor {
4 | traducao: string;
5 | abstract paraTexto(): string;
6 | }
7 |
--------------------------------------------------------------------------------
/exemplos/exemplo5.foles:
--------------------------------------------------------------------------------
1 | $valor-padrao: 50%;
2 | $recuo-imediato: 20px;
3 |
4 | lmht {
5 | altura: $valor-padrao;
6 | recuo: $recuo-imediato;
7 | }
8 |
9 | lmht {
10 | largura: 20px;
11 | }
--------------------------------------------------------------------------------
/fontes/seletores/index.ts:
--------------------------------------------------------------------------------
1 | export * from "./pragmas-seletor";
2 | export * from "./seletor";
3 | export * from "./seletor-classe";
4 | export * from "./seletor-estrutura";
5 | export * from "./seletor-id";
6 |
--------------------------------------------------------------------------------
/fontes/valores/metodos/css/metodo-css.ts:
--------------------------------------------------------------------------------
1 | import { Valor } from "../../valor";
2 |
3 | export abstract class MetodoCss extends Valor {
4 | traducao: string;
5 | abstract paraTexto(): string;
6 | }
7 |
--------------------------------------------------------------------------------
/exemplos/reverso/aninhamentos.css:
--------------------------------------------------------------------------------
1 | html {
2 | font-size:12px;
3 | }
4 |
5 | body {
6 | font-size:16px;
7 | max-width:20cm;
8 |
9 | p {
10 | color: #999;
11 | }
12 | }
13 |
--------------------------------------------------------------------------------
/fontes/valores/index.ts:
--------------------------------------------------------------------------------
1 | export * from './valor';
2 | export * from './valor-abreviacao';
3 | export * from './valor-numerico';
4 | export * from './valor-qualitativo';
5 | export * from './valor-texto';
6 | export * from './valor-virgula';
7 |
--------------------------------------------------------------------------------
/fontes/modificadores/validacoes/string.ts:
--------------------------------------------------------------------------------
1 | import { ValorTexto } from "../../valores";
2 |
3 | export function validarValorString(valor: ValorTexto) {
4 | return valor.literalTexto.includes("'") || valor.literalTexto.includes('"');
5 | }
6 |
--------------------------------------------------------------------------------
/testes/modelos/arquivo-modelo.foles:
--------------------------------------------------------------------------------
1 | aspas {
2 | contém: nenhum;
3 | recortar: auto;
4 | fluxo: nenhum;
5 | conteudo: normal;
6 | citações: nenhum;
7 | tamanho-fonte: 16px;
8 | largura-maxima: 20cm;
9 | }
10 |
--------------------------------------------------------------------------------
/fontes/listas/valores-personalizados.d.ts:
--------------------------------------------------------------------------------
1 | export declare const ModificadoresValorPersonalizado: Array;
2 | export declare const ValoresPersonalizados: Array