diff --git a/.sass-cache/18755931ac3c0b7fe879b6cdcc28e2f1d2d1847a/_base.scssc b/.sass-cache/18755931ac3c0b7fe879b6cdcc28e2f1d2d1847a/_base.scssc new file mode 100644 index 0000000..8d99fec Binary files /dev/null and b/.sass-cache/18755931ac3c0b7fe879b6cdcc28e2f1d2d1847a/_base.scssc differ diff --git a/.sass-cache/18755931ac3c0b7fe879b6cdcc28e2f1d2d1847a/_layout.scssc b/.sass-cache/18755931ac3c0b7fe879b6cdcc28e2f1d2d1847a/_layout.scssc new file mode 100644 index 0000000..123d2c8 Binary files /dev/null and b/.sass-cache/18755931ac3c0b7fe879b6cdcc28e2f1d2d1847a/_layout.scssc differ diff --git a/.sass-cache/18755931ac3c0b7fe879b6cdcc28e2f1d2d1847a/_syntax-highlighting.scssc b/.sass-cache/18755931ac3c0b7fe879b6cdcc28e2f1d2d1847a/_syntax-highlighting.scssc new file mode 100644 index 0000000..e50a0cf Binary files /dev/null and b/.sass-cache/18755931ac3c0b7fe879b6cdcc28e2f1d2d1847a/_syntax-highlighting.scssc differ diff --git a/.sass-cache/5f6bb8f3dfbc03a5ae60c948e3db83817e9b8ede/minima.scssc b/.sass-cache/5f6bb8f3dfbc03a5ae60c948e3db83817e9b8ede/minima.scssc new file mode 100644 index 0000000..4d0a08b Binary files /dev/null and b/.sass-cache/5f6bb8f3dfbc03a5ae60c948e3db83817e9b8ede/minima.scssc differ diff --git a/_config.yml b/_config.yml index f2d83c1..5b11af4 100644 --- a/_config.yml +++ b/_config.yml @@ -17,8 +17,13 @@ title: ItaloCobainsBlog email: italobrandao.contato@gmail.com description: >- # this means to ignore newlines until "baseurl:" Bem-vindo ao nosso blog, um espaço dedicado à exploração do fascinante mundo da programação, tecnologia, hacking ético e ciência da computação. Mergulhe conosco em uma jornada repleta de insights e novidades, enquanto compartilhamos nosso conhecimento e paixão por esses campos em constante evolução. -baseurl: "" # the subpath of your site, e.g. /blog -url: "" # the base hostname & protocol for your site, e.g. http://example.com +# Comentários do Disqus +disqus: + shortname: ItaloCobainsBlog + # Deixe o nome abreviado em branco para desativar os comentários em todo o site. + # Desative comentários para qualquer postagem adicionando `comments: false` ao YAML Front Matter dessa postagem. + +url: "http://ItaloCobainsBlog.com" # the base hostname & protocol for your site, e.g. http://example.com twitter_username: JustItalow github_username: ItaloCobains @@ -27,6 +32,7 @@ markdown: kramdown theme: minima plugins: - jekyll-feed + - jekyll-seo-tag # Exclude from processing. # The following items will not be processed, by default. Create a custom list diff --git a/_includes/disqus_comments.html b/_includes/disqus_comments.html new file mode 100644 index 0000000..6462286 --- /dev/null +++ b/_includes/disqus_comments.html @@ -0,0 +1,18 @@ +{% if page.comments != false and jekyll.environment == "production" %} + +
+ + +{% endif %} diff --git "a/_posts/2023-11-28-Nada-\303\251-real.md" "b/_posts/2023-11-28-Nada-\303\251-real.md" index 782548a..af28c0f 100644 --- "a/_posts/2023-11-28-Nada-\303\251-real.md" +++ "b/_posts/2023-11-28-Nada-\303\251-real.md" @@ -1,5 +1,6 @@ --- layout: post +comments: true title: "nothing's real" date: 2023-11-28 09:30:00 -0300 categories: world mind @@ -7,6 +8,8 @@ categories: world mind # Nada é real ? +![Imagem](/assets/nothing_is_real.jpg) + Isso é um sobra dos meus pensamentos referente a o mundo em que vivemos hoje em dia, aparentemente nada é real, seus ganhos, seus bens, sua casa nova, suas conquistas nada disso é real, tudo que vc tem é apenas um parcela de felicidade. O que eu vou falar parece estranho mas isso é so um fruto do meu pensamento "Bens são sentimentos". Não estou generalizando obvio porem grande parte de nos humanos diff --git "a/_site/2023/11/23/O-que-\303\251-um-lex.html" "b/_site/2023/11/23/O-que-\303\251-um-lex.html" new file mode 100644 index 0000000..842e506 --- /dev/null +++ "b/_site/2023/11/23/O-que-\303\251-um-lex.html" @@ -0,0 +1,107 @@ +

O que é um lex ou avaliador lexico ?

+ +

Lexical analyzer ou lex ou avaliador léxico é um processo fundamental na arquitetura de qualquer interpretador ou compilador. Ele é responsável por analisar o codigo fonte ou entrada de texto iterando sobre cada caractere é gerando tokens ou simbolos que vão ser importante para os próximos passos de um compilador/interpretador.

+ +

Como escrever um lex ?

+ +

Exemplo: LexEstupido.js

+
class Token {
+  constructor(type, value) {
+    this.type = type;
+    this.value = value;
+  }
+}
+
+class Lexer {
+  constructor(code) {
+    this.code = code;
+    this.position = 0;
+  }
+
+  isWhitespace(char) {
+    return /\s/.test(char);
+  }
+
+  isDigit(char) {
+    return /\d/.test(char);
+  }
+
+  isAlpha(char) {
+    return /[a-zA-Z_]/.test(char);
+  }
+
+  getNextToken() {
+    while (this.position < this.code.length) {
+      const char = this.code[this.position];
+
+      if (this.isWhitespace(char)) {
+        this.position++;
+        continue;
+      }
+
+      switch (true) {
+        case this.isDigit(char):
+          return this.parseNumber();
+        case this.isAlpha(char):
+          return this.parseIdentifier();
+        case /[\+\-\*\/\(\)]/.test(char):
+          this.position++;
+          return new Token(char, char);
+        case char === '=':
+          this.position++;
+          return new Token('EQUALS', '=');
+        default:
+          console.error(`Erro léxico: Caractere inesperado '${char}' na posição ${this.position}`);
+          return null;
+      }
+    }
+
+    // Fim do código
+    return null;
+  }
+
+  parseNumber() {
+    let value = '';
+
+    while (this.position < this.code.length && this.isDigit(this.code[this.position])) {
+      value += this.code[this.position];
+      this.position++;
+    }
+
+    return new Token('NUMBER', parseInt(value, 10));
+  }
+
+  parseIdentifier() {
+    let value = '';
+
+    while (this.position < this.code.length && (this.isAlpha(this.code[this.position]) || this.isDigit(this.code[this.position]))) {
+      value += this.code[this.position];
+      this.position++;
+    }
+
+    return new Token('ID', value);
+  }
+
+  tokenize() {
+    const tokens = [];
+
+    let token;
+    while ((token = this.getNextToken()) !== null) {
+      tokens.push(token);
+    }
+
+    return tokens;
+  }
+}
+
+// Exemplo de uso
+const codigoFonte = "x = 10 + 20 * (30 - 5)";
+const lexer = new Lexer(codigoFonte);
+const tokensResultantes = lexer.tokenize();
+console.log(tokensResultantes);
+
+
+ +

Primeiramente, criamos um ‘Token’, uma estrutura que armazena a identidade de cada caractere. É importante observar que um ‘Token’ pode conter mais atributos do que os exemplificados aqui; meu exemplo é simplificado.

+ +

Em seguida, começamos com a classe que recebe o código no construtor. Posteriormente, o método ‘tokenize’ é implementado como o principal da classe, responsável por percorrer o código fonte. O método ‘getNextToken’ é encarregado de identificar o caractere atual e atribuí-lo a um ‘Token’. Os demais métodos servem apenas como validadores de strings. Ao final, o vetor de ‘Tokens’ é retornado.”

diff --git a/_site/404.html b/_site/404.html index 045a8b1..f9b6401 100644 --- a/_site/404.html +++ b/_site/404.html @@ -9,16 +9,16 @@ - - + + +{"@context":"https://schema.org","@type":"WebPage","description":"Bem-vindo ao nosso blog, um espaço dedicado à exploração do fascinante mundo da programação, tecnologia, hacking ético e ciência da computação. Mergulhe conosco em uma jornada repleta de insights e novidades, enquanto compartilhamos nosso conhecimento e paixão por esses campos em constante evolução.","headline":"ItaloCobainsBlog","url":"http://italocobainsblog.com/404.html"} - +