Skip to content

Commit

Permalink
FInaliza implementação de metodos na tradução reversa
Browse files Browse the repository at this point in the history
  • Loading branch information
VitBrandao committed Dec 11, 2024
1 parent 314a966 commit bfb5cd3
Show file tree
Hide file tree
Showing 10 changed files with 328 additions and 7 deletions.
3 changes: 3 additions & 0 deletions exemplos/reverso/exemplo-metodos.css
Original file line number Diff line number Diff line change
Expand Up @@ -33,12 +33,15 @@ div {

a {
backdrop-filter: hue-rotate(90deg);
transform: translateX(200px);
}

p {
backdrop-filter: sepia(60%);
transform: translateY(50%);
}

div {
backdrop-filter: saturate(5);
transform: translateZ(150);
}
131 changes: 131 additions & 0 deletions fontes/avaliador-sintatico/avaliador-sintatico-reverso.ts
Original file line number Diff line number Diff line change
Expand Up @@ -747,6 +747,137 @@ export class AvaliadorSintaticoReverso implements AvaliadorSintaticoInterface {
lexema,
[valorSepia, quantificadorSepia]
);

case "translate":
this.consumir(tiposDeSimbolos.PARENTESE_ESQUERDO, "Esperado parêntese esquerdo após método 'translate'.");

Check warning on line 752 in fontes/avaliador-sintatico/avaliador-sintatico-reverso.ts

View workflow job for this annotation

GitHub Actions / Coverage annotations (🧪 jest-coverage-report-action)

🧾 Statement is not covered

Warning! Not covered statement

const valorTranslacao1 = this.avancarEDevolverAnterior();

Check warning on line 754 in fontes/avaliador-sintatico/avaliador-sintatico-reverso.ts

View workflow job for this annotation

GitHub Actions / Coverage annotations (🧪 jest-coverage-report-action)

🧾 Statement is not covered

Warning! Not covered statement

let quantificadorTranlacao1;
if (this.simbolos[this.atual].tipo === 'QUANTIFICADOR') {
quantificadorTranlacao1 = this.avancarEDevolverAnterior();

Check warning on line 758 in fontes/avaliador-sintatico/avaliador-sintatico-reverso.ts

View workflow job for this annotation

GitHub Actions / Coverage annotations (🧪 jest-coverage-report-action)

🧾 Statement is not covered

Warning! Not covered statement
} else {
quantificadorTranlacao1 = null;

Check warning on line 760 in fontes/avaliador-sintatico/avaliador-sintatico-reverso.ts

View workflow job for this annotation

GitHub Actions / Coverage annotations (🧪 jest-coverage-report-action)

🧾 Statement is not covered

Warning! Not covered statement
}

Check warning on line 761 in fontes/avaliador-sintatico/avaliador-sintatico-reverso.ts

View workflow job for this annotation

GitHub Actions / Coverage annotations (🧪 jest-coverage-report-action)

🧾 Statement is not covered

Warning! Not covered statement

let valorTranslacao2;
let quantificadorTranlacao2;
if (this.simbolos[this.atual].tipo === 'VIRGULA') {
this.consumir(tiposDeSimbolos.VIRGULA, "Esperado vírgula após primeiro argumento do método 'translate'.");

Check warning on line 766 in fontes/avaliador-sintatico/avaliador-sintatico-reverso.ts

View workflow job for this annotation

GitHub Actions / Coverage annotations (🧪 jest-coverage-report-action)

🧾 Statement is not covered

Warning! Not covered statement
valorTranslacao2 = this.avancarEDevolverAnterior();

Check warning on line 767 in fontes/avaliador-sintatico/avaliador-sintatico-reverso.ts

View workflow job for this annotation

GitHub Actions / Coverage annotations (🧪 jest-coverage-report-action)

🧾 Statement is not covered

Warning! Not covered statement
quantificadorTranlacao2 = this.avancarEDevolverAnterior();

Check warning on line 768 in fontes/avaliador-sintatico/avaliador-sintatico-reverso.ts

View workflow job for this annotation

GitHub Actions / Coverage annotations (🧪 jest-coverage-report-action)

🧾 Statement is not covered

Warning! Not covered statement
} else {
valorTranslacao2 = null;

Check warning on line 770 in fontes/avaliador-sintatico/avaliador-sintatico-reverso.ts

View workflow job for this annotation

GitHub Actions / Coverage annotations (🧪 jest-coverage-report-action)

🧾 Statement is not covered

Warning! Not covered statement
quantificadorTranlacao2 = null;

Check warning on line 771 in fontes/avaliador-sintatico/avaliador-sintatico-reverso.ts

View workflow job for this annotation

GitHub Actions / Coverage annotations (🧪 jest-coverage-report-action)

🧾 Statement is not covered

Warning! Not covered statement
}

Check warning on line 772 in fontes/avaliador-sintatico/avaliador-sintatico-reverso.ts

View workflow job for this annotation

GitHub Actions / Coverage annotations (🧪 jest-coverage-report-action)

🧾 Statement is not covered

Warning! Not covered statement

this.consumir(tiposDeSimbolos.PARENTESE_DIREITO, "Esperado parêntese direito após método 'translação'.");

Check warning on line 774 in fontes/avaliador-sintatico/avaliador-sintatico-reverso.ts

View workflow job for this annotation

GitHub Actions / Coverage annotations (🧪 jest-coverage-report-action)

🧾 Statement is not covered

Warning! Not covered statement
return new SeletorValorReverso(
lexema,
[valorTranslacao1, quantificadorTranlacao1, valorTranslacao2, quantificadorTranlacao2]
);

Check warning on line 778 in fontes/avaliador-sintatico/avaliador-sintatico-reverso.ts

View workflow job for this annotation

GitHub Actions / Coverage annotations (🧪 jest-coverage-report-action)

🧾 Statement is not covered

Warning! Not covered statement

case "translate-3d":
this.consumir(tiposDeSimbolos.PARENTESE_ESQUERDO, "Esperado parêntese esquerdo após método 'translate-3d'.");

Check warning on line 781 in fontes/avaliador-sintatico/avaliador-sintatico-reverso.ts

View workflow job for this annotation

GitHub Actions / Coverage annotations (🧪 jest-coverage-report-action)

🧾 Statement is not covered

Warning! Not covered statement

const valorTranslacao3d1 = this.avancarEDevolverAnterior();

Check warning on line 783 in fontes/avaliador-sintatico/avaliador-sintatico-reverso.ts

View workflow job for this annotation

GitHub Actions / Coverage annotations (🧪 jest-coverage-report-action)

🧾 Statement is not covered

Warning! Not covered statement

let quantificadorTranlacao3d1;
if (this.simbolos[this.atual].tipo === 'QUANTIFICADOR') {
quantificadorTranlacao3d1 = this.avancarEDevolverAnterior();

Check warning on line 787 in fontes/avaliador-sintatico/avaliador-sintatico-reverso.ts

View workflow job for this annotation

GitHub Actions / Coverage annotations (🧪 jest-coverage-report-action)

🧾 Statement is not covered

Warning! Not covered statement
} else {
quantificadorTranlacao3d1 = null;

Check warning on line 789 in fontes/avaliador-sintatico/avaliador-sintatico-reverso.ts

View workflow job for this annotation

GitHub Actions / Coverage annotations (🧪 jest-coverage-report-action)

🧾 Statement is not covered

Warning! Not covered statement
}

Check warning on line 790 in fontes/avaliador-sintatico/avaliador-sintatico-reverso.ts

View workflow job for this annotation

GitHub Actions / Coverage annotations (🧪 jest-coverage-report-action)

🧾 Statement is not covered

Warning! Not covered statement

let valorTranslacao3d2;
let quantificadorTranlacao3d2;
if (this.simbolos[this.atual].tipo === 'VIRGULA') {
this.consumir(tiposDeSimbolos.VIRGULA, "Esperado vírgula após primeiro argumento do método 'translate-3d'.");

Check warning on line 795 in fontes/avaliador-sintatico/avaliador-sintatico-reverso.ts

View workflow job for this annotation

GitHub Actions / Coverage annotations (🧪 jest-coverage-report-action)

🧾 Statement is not covered

Warning! Not covered statement
valorTranslacao3d2 = this.avancarEDevolverAnterior();

Check warning on line 796 in fontes/avaliador-sintatico/avaliador-sintatico-reverso.ts

View workflow job for this annotation

GitHub Actions / Coverage annotations (🧪 jest-coverage-report-action)

🧾 Statement is not covered

Warning! Not covered statement
if (this.simbolos[this.atual].tipo === 'QUANTIFICADOR') {
quantificadorTranlacao3d2 = this.avancarEDevolverAnterior();

Check warning on line 798 in fontes/avaliador-sintatico/avaliador-sintatico-reverso.ts

View workflow job for this annotation

GitHub Actions / Coverage annotations (🧪 jest-coverage-report-action)

🧾 Statement is not covered

Warning! Not covered statement
} else {
quantificadorTranlacao3d2 = null;

Check warning on line 800 in fontes/avaliador-sintatico/avaliador-sintatico-reverso.ts

View workflow job for this annotation

GitHub Actions / Coverage annotations (🧪 jest-coverage-report-action)

🧾 Statement is not covered

Warning! Not covered statement
}

Check warning on line 801 in fontes/avaliador-sintatico/avaliador-sintatico-reverso.ts

View workflow job for this annotation

GitHub Actions / Coverage annotations (🧪 jest-coverage-report-action)

🧾 Statement is not covered

Warning! Not covered statement
} else {
valorTranslacao3d2 = null;

Check warning on line 803 in fontes/avaliador-sintatico/avaliador-sintatico-reverso.ts

View workflow job for this annotation

GitHub Actions / Coverage annotations (🧪 jest-coverage-report-action)

🧾 Statement is not covered

Warning! Not covered statement
quantificadorTranlacao3d2 = null;

Check warning on line 804 in fontes/avaliador-sintatico/avaliador-sintatico-reverso.ts

View workflow job for this annotation

GitHub Actions / Coverage annotations (🧪 jest-coverage-report-action)

🧾 Statement is not covered

Warning! Not covered statement
}

Check warning on line 805 in fontes/avaliador-sintatico/avaliador-sintatico-reverso.ts

View workflow job for this annotation

GitHub Actions / Coverage annotations (🧪 jest-coverage-report-action)

🧾 Statement is not covered

Warning! Not covered statement

let valorTranslacao3d3;
let quantificadorTranlacao3d3;
if (this.simbolos[this.atual].tipo === 'VIRGULA') {
this.consumir(tiposDeSimbolos.VIRGULA, "Esperado vírgula após primeiro argumento do método 'translate-3d'.");

Check warning on line 810 in fontes/avaliador-sintatico/avaliador-sintatico-reverso.ts

View workflow job for this annotation

GitHub Actions / Coverage annotations (🧪 jest-coverage-report-action)

🧾 Statement is not covered

Warning! Not covered statement
valorTranslacao3d3 = this.avancarEDevolverAnterior();

Check warning on line 811 in fontes/avaliador-sintatico/avaliador-sintatico-reverso.ts

View workflow job for this annotation

GitHub Actions / Coverage annotations (🧪 jest-coverage-report-action)

🧾 Statement is not covered

Warning! Not covered statement
if (this.simbolos[this.atual].tipo === 'QUANTIFICADOR') {
quantificadorTranlacao3d3 = this.avancarEDevolverAnterior();

Check warning on line 813 in fontes/avaliador-sintatico/avaliador-sintatico-reverso.ts

View workflow job for this annotation

GitHub Actions / Coverage annotations (🧪 jest-coverage-report-action)

🧾 Statement is not covered

Warning! Not covered statement
} else {
quantificadorTranlacao3d3 = null;

Check warning on line 815 in fontes/avaliador-sintatico/avaliador-sintatico-reverso.ts

View workflow job for this annotation

GitHub Actions / Coverage annotations (🧪 jest-coverage-report-action)

🧾 Statement is not covered

Warning! Not covered statement
}

Check warning on line 816 in fontes/avaliador-sintatico/avaliador-sintatico-reverso.ts

View workflow job for this annotation

GitHub Actions / Coverage annotations (🧪 jest-coverage-report-action)

🧾 Statement is not covered

Warning! Not covered statement
} else {
valorTranslacao3d3 = null;

Check warning on line 818 in fontes/avaliador-sintatico/avaliador-sintatico-reverso.ts

View workflow job for this annotation

GitHub Actions / Coverage annotations (🧪 jest-coverage-report-action)

🧾 Statement is not covered

Warning! Not covered statement
quantificadorTranlacao3d3 = null;

Check warning on line 819 in fontes/avaliador-sintatico/avaliador-sintatico-reverso.ts

View workflow job for this annotation

GitHub Actions / Coverage annotations (🧪 jest-coverage-report-action)

🧾 Statement is not covered

Warning! Not covered statement
}

Check warning on line 820 in fontes/avaliador-sintatico/avaliador-sintatico-reverso.ts

View workflow job for this annotation

GitHub Actions / Coverage annotations (🧪 jest-coverage-report-action)

🧾 Statement is not covered

Warning! Not covered statement

this.consumir(tiposDeSimbolos.PARENTESE_DIREITO, "Esperado parêntese direito após método 'translate-3d'.");

Check warning on line 822 in fontes/avaliador-sintatico/avaliador-sintatico-reverso.ts

View workflow job for this annotation

GitHub Actions / Coverage annotations (🧪 jest-coverage-report-action)

🧾 Statement is not covered

Warning! Not covered statement
return new SeletorValorReverso(
lexema,
[valorTranslacao3d1, quantificadorTranlacao3d1, valorTranslacao3d2, quantificadorTranlacao3d2, valorTranslacao3d3, quantificadorTranlacao3d3]
);

Check warning on line 826 in fontes/avaliador-sintatico/avaliador-sintatico-reverso.ts

View workflow job for this annotation

GitHub Actions / Coverage annotations (🧪 jest-coverage-report-action)

🧾 Statement is not covered

Warning! Not covered statement

case "translateX":
this.consumir(tiposDeSimbolos.PARENTESE_ESQUERDO, "Esperado parêntese esquerdo após método 'translateX'.");

Check warning on line 829 in fontes/avaliador-sintatico/avaliador-sintatico-reverso.ts

View workflow job for this annotation

GitHub Actions / Coverage annotations (🧪 jest-coverage-report-action)

🧾 Statement is not covered

Warning! Not covered statement
const valorTranslaçaoX = this.avancarEDevolverAnterior();

Check warning on line 830 in fontes/avaliador-sintatico/avaliador-sintatico-reverso.ts

View workflow job for this annotation

GitHub Actions / Coverage annotations (🧪 jest-coverage-report-action)

🧾 Statement is not covered

Warning! Not covered statement
let quantificadorTranslaçaoX;
if (this.simbolos[this.atual].tipo === 'QUANTIFICADOR') {
quantificadorTranslaçaoX = this.avancarEDevolverAnterior();

Check warning on line 833 in fontes/avaliador-sintatico/avaliador-sintatico-reverso.ts

View workflow job for this annotation

GitHub Actions / Coverage annotations (🧪 jest-coverage-report-action)

🧾 Statement is not covered

Warning! Not covered statement
} else {
quantificadorTranslaçaoX = null;

Check warning on line 835 in fontes/avaliador-sintatico/avaliador-sintatico-reverso.ts

View workflow job for this annotation

GitHub Actions / Coverage annotations (🧪 jest-coverage-report-action)

🧾 Statement is not covered

Warning! Not covered statement
}

Check warning on line 836 in fontes/avaliador-sintatico/avaliador-sintatico-reverso.ts

View workflow job for this annotation

GitHub Actions / Coverage annotations (🧪 jest-coverage-report-action)

🧾 Statement is not covered

Warning! Not covered statement
this.consumir(tiposDeSimbolos.PARENTESE_DIREITO, "Esperado parêntese direito após método 'translateX'.");

Check warning on line 837 in fontes/avaliador-sintatico/avaliador-sintatico-reverso.ts

View workflow job for this annotation

GitHub Actions / Coverage annotations (🧪 jest-coverage-report-action)

🧾 Statement is not covered

Warning! Not covered statement
return new SeletorValorReverso(
lexema,
[valorTranslaçaoX, quantificadorTranslaçaoX]
);

case "translateY":
this.consumir(tiposDeSimbolos.PARENTESE_ESQUERDO, "Esperado parêntese esquerdo após método 'translateY'.");
const valorTranslaçaoY = this.avancarEDevolverAnterior();
let quantificadorTranslaçaoY;
if (this.simbolos[this.atual].tipo === 'QUANTIFICADOR') {
quantificadorTranslaçaoY = this.avancarEDevolverAnterior();
} else {
quantificadorTranslaçaoY = null;
}
this.consumir(tiposDeSimbolos.PARENTESE_DIREITO, "Esperado parêntese direito após método 'translateY'.");
return new SeletorValorReverso(
lexema,
[valorTranslaçaoY, quantificadorTranslaçaoY]
);

case "translateZ":
this.consumir(tiposDeSimbolos.PARENTESE_ESQUERDO, "Esperado parêntese esquerdo após método 'translateZ'.");
const valorTranslaçaoZ = this.avancarEDevolverAnterior();
let quantificadorTranslaçaoZ;
if (this.simbolos[this.atual].tipo === 'QUANTIFICADOR') {
quantificadorTranslaçaoZ = this.avancarEDevolverAnterior();
} else {
quantificadorTranslaçaoZ = null;
}
this.consumir(tiposDeSimbolos.PARENTESE_DIREITO, "Esperado parêntese direito após método 'translateZ'.");
return new SeletorValorReverso(
lexema,
[valorTranslaçaoZ, quantificadorTranslaçaoZ]
);

// case "url":
// this.consumir(tiposDeSimbolos.PARENTESE_ESQUERDO, "Esperado parêntese esquerdo após método 'url'.");
// const url = this.validacaoUrl();
// this.consumir(tiposDeSimbolos.PARENTESE_DIREITO, "Esperado parêntese direito após argumento do método url.");
// return new SeletorValorReverso(
// lexema,
// [url]
// );
}

Check warning on line 881 in fontes/avaliador-sintatico/avaliador-sintatico-reverso.ts

View workflow job for this annotation

GitHub Actions / Coverage annotations (🧪 jest-coverage-report-action)

🧾 Statement is not covered

Warning! Not covered statement
}

Expand Down
14 changes: 7 additions & 7 deletions fontes/avaliador-sintatico/avaliador-sintatico.ts
Original file line number Diff line number Diff line change
Expand Up @@ -703,28 +703,28 @@ export class AvaliadorSintatico implements AvaliadorSintaticoInterface {

const valorTranslacao1 = this.avancarEDevolverAnterior();

let quantificadorTranlacao1;
let quantificadorTranslacao1;
if (this.simbolos[this.atual].tipo === 'QUANTIFICADOR') {
quantificadorTranlacao1 = this.avancarEDevolverAnterior();
quantificadorTranslacao1 = this.avancarEDevolverAnterior();
} else {
quantificadorTranlacao1 = null;
quantificadorTranslacao1 = null;
}

let valorTranslacao2;
let quantificadorTranlacao2;
let quantificadorTranslacao2;
if (this.simbolos[this.atual].tipo === 'VIRGULA') {
this.consumir(tiposDeSimbolos.VIRGULA, "Esperado vírgula após primeiro argumento do método 'translação'.");
valorTranslacao2 = this.avancarEDevolverAnterior();
quantificadorTranlacao2 = this.avancarEDevolverAnterior();
quantificadorTranslacao2 = this.avancarEDevolverAnterior();

Check warning on line 718 in fontes/avaliador-sintatico/avaliador-sintatico.ts

View workflow job for this annotation

GitHub Actions / Coverage annotations (🧪 jest-coverage-report-action)

🧾 Statement is not covered

Warning! Not covered statement
} else {
valorTranslacao2 = null;
quantificadorTranlacao2 = null;
quantificadorTranslacao2 = null;
}

Check warning on line 722 in fontes/avaliador-sintatico/avaliador-sintatico.ts

View workflow job for this annotation

GitHub Actions / Coverage annotations (🧪 jest-coverage-report-action)

🌿 Branch is not covered

Warning! Not covered branch

this.consumir(tiposDeSimbolos.PARENTESE_DIREITO, "Esperado parêntese direito após método 'translação'.");
return new SeletorValor(
lexema,
[valorTranslacao1, quantificadorTranlacao1, valorTranslacao2, quantificadorTranlacao2]
[valorTranslacao1, quantificadorTranslacao1, valorTranslacao2, quantificadorTranslacao2]
);

case "translacao":
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -397,6 +397,12 @@ import { RotateZ } from "../../valores/metodos/css/rotateZ";
import { HueRotate } from "../../valores/metodos/css/hue-rotate";
import { Saturate } from "../../valores/metodos/css/saturate";
import { Sepia } from "../../valores/metodos/css/sepia";
import { Translate3d } from "../../valores/metodos/css/translate3d";
import { TranslateZ } from "../../valores/metodos/css/translateZ";
import { TranslateX } from "../../valores/metodos/css/translateX";
import { TranslateY } from "../../valores/metodos/css/translateY";
import { Translate } from "../../valores/metodos/css/translate";
import { Url } from "../../valores/metodos/css/url";

export const DicionarioReversoModificadores: { [nomeCss: string]: any } = {
"word-wrap": AgruparPalavra,
Expand Down Expand Up @@ -800,4 +806,10 @@ export const DicionarioReversoModificadores: { [nomeCss: string]: any } = {
"skewX": SkewX,
"skewY": SkewY,
"steps": Steps,
// "translate": Translate,
"translate3d": Translate3d,
"translateX": TranslateX,
"translateY": TranslateY,
"translateZ": TranslateZ,
"url": Url,
}
35 changes: 35 additions & 0 deletions fontes/valores/metodos/css/translate.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,35 @@
import { Simbolo } from "../../../lexador";
import { MetodoCss } from "./metodo-css";

export class Translate extends MetodoCss {
valor1: number;
quantificador1: string;
valor2: number;
quantificador2: string;
traducao: string;

constructor(valor1: Simbolo, quantificador1: Simbolo, valor2: Simbolo, quantificador2: Simbolo) {
super();
this.valor1 = Number(valor1.lexema);
this.quantificador1 = quantificador1 ? quantificador1.lexema : null;
this.valor2 = valor2 ? Number(valor2.lexema) : null;
this.quantificador2 = quantificador2 ? quantificador2.lexema : null;
this.traducao = 'translate';
}

paraTexto() {
if (!this.quantificador1 && !this.valor2 && !this.quantificador2) {
return `translacao(${this.valor1})`
}

if (!this.valor2 && !this.quantificador2) {
this.quantificador1 === 'graus' ? this.quantificador1 = 'deg' : null;
return `translacao(${this.valor1}${this.quantificador1})`
}

this.quantificador1 === 'graus' ? this.quantificador1 = 'deg' : null;
this.quantificador2 === 'graus' ? this.quantificador2 = 'deg' : null;

return `translacao(${this.valor1}${this.quantificador1}, ${this.valor2}${this.quantificador2})`
}
}
55 changes: 55 additions & 0 deletions fontes/valores/metodos/css/translate3d.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,55 @@
import { Simbolo } from "../../../lexador";
import { MetodoCss } from "./metodo-css";

export class Translate3d extends MetodoCss {
valor1: number;
quantificador1: string;
valor2: number;
quantificador2: string;
valor3: number;
quantificador3: string;
traducao: string;

constructor(valor1: Simbolo, quantificador1: Simbolo, valor2: Simbolo, quantificador2: Simbolo, valor3: Simbolo, quantificador3: Simbolo) {
super();
this.valor1 = Number(valor1.lexema);
this.quantificador1 = quantificador1 ? quantificador1.lexema : null;
this.valor2 = valor2 ? Number(valor2.lexema) : null;
this.quantificador2 = quantificador2 ? quantificador2.lexema : null;
this.valor3 = valor3 ? Number(valor3.lexema) : null;
this.quantificador3 = quantificador3 ? quantificador3.lexema : null;
this.traducao = 'translate3d';
}

paraTexto() {
if (!this.quantificador1 && !this.valor2 && !this.quantificador2 && !this.valor3 && !this.quantificador3) {
return `translacao-3d(${this.valor1})`
}

if (!this.quantificador1 && this.quantificador2 && this.quantificador3) {
return `translacao-3d(${this.valor1}, ${this.valor2}${this.quantificador2}, ${this.valor3}${this.quantificador3})`
}

if (!this.quantificador2 && this.quantificador1 && this.quantificador3) {
return `translacao-3d(${this.valor1}${this.quantificador1}, ${this.valor2}, ${this.valor3}${this.quantificador3})`
}

if (!this.quantificador3 && this.quantificador2 && this.quantificador1) {
return `translacao-3d(${this.valor1}${this.quantificador1}, ${this.valor2}${this.quantificador2}, ${this.valor3})`
}

if (!this.quantificador1 && !this.quantificador2 && this.quantificador3) {
return `translacao-3d(${this.valor1}, ${this.valor2}, ${this.valor3}${this.quantificador3})`
}

if (!this.quantificador3 && this.quantificador2 && !this.quantificador1) {
return `translacao-3d(${this.valor1}, ${this.valor2}${this.quantificador2}, ${this.valor3})`
}

if (!this.quantificador3 && !this.quantificador2 && this.quantificador1) {
return `translacao-3d(${this.valor1}${this.quantificador1}, ${this.valor2}, ${this.valor3})`
}

return `translacao-3d(${this.valor1}${this.quantificador1}, ${this.valor2}${this.quantificador2}, ${this.valor3}${this.quantificador3})`
}
}
23 changes: 23 additions & 0 deletions fontes/valores/metodos/css/translateX.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,23 @@
import { Simbolo } from "../../../lexador";
import { MetodoCss } from "./metodo-css";

export class TranslateX extends MetodoCss {
valor: number;
quantificador: string;
traducao: string;

constructor(valor: Simbolo, quantificador: Simbolo) {
super();
this.valor = Number(valor.lexema);
this.quantificador = quantificador ? quantificador.lexema : null;
this.traducao = 'translateX';
}

paraTexto() {
if (this.quantificador) {
return `translacao-horizontal(${this.valor}${this.quantificador})`
}

return `translacao-horizontal(${this.valor})`
}
}
23 changes: 23 additions & 0 deletions fontes/valores/metodos/css/translateY.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,23 @@
import { Simbolo } from "../../../lexador";
import { MetodoCss } from "./metodo-css";

export class TranslateY extends MetodoCss {
valor: number;
quantificador: string;
traducao: string;

constructor(valor: Simbolo, quantificador: Simbolo) {
super();
this.valor = Number(valor.lexema);
this.quantificador = quantificador ? quantificador.lexema : null;
this.traducao = 'translateY';
}

paraTexto() {
if (this.quantificador) {
return `translacao-vertical(${this.valor}${this.quantificador})`
}

return `translacao-vertical(${this.valor})`
}
}
23 changes: 23 additions & 0 deletions fontes/valores/metodos/css/translateZ.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,23 @@
import { Simbolo } from "../../../lexador";
import { MetodoCss } from "./metodo-css";

export class TranslateZ extends MetodoCss {
valor: number;
quantificador: string;
traducao: string;

constructor(valor: Simbolo, quantificador: Simbolo) {
super();
this.valor = Number(valor.lexema);
this.quantificador = quantificador ? quantificador.lexema : null;
this.traducao = 'translateZ';
}

paraTexto() {
if (this.quantificador) {
return `translacao-eixo-z(${this.valor}${this.quantificador})`
}

return `translacao-eixo-z(${this.valor})`
}
}
Loading

0 comments on commit bfb5cd3

Please sign in to comment.