<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: CrabPascal</title>
    <description>The latest articles on DEV Community by CrabPascal (@crabpascal).</description>
    <link>https://dev.to/crabpascal</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F3961523%2F0a606a6e-762d-4f75-9bc8-225ab7919cc7.jpg</url>
      <title>DEV Community: CrabPascal</title>
      <link>https://dev.to/crabpascal</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/crabpascal"/>
    <language>en</language>
    <item>
      <title>CrabPascal Quick Start in Five Minutes | Início rápido em cinco minutos</title>
      <dc:creator>CrabPascal</dc:creator>
      <pubDate>Tue, 02 Jun 2026 12:27:00 +0000</pubDate>
      <link>https://dev.to/crabpascal/crabpascal-quick-start-in-five-minutes-inicio-rapido-em-cinco-minutos-bo8</link>
      <guid>https://dev.to/crabpascal/crabpascal-quick-start-in-five-minutes-inicio-rapido-em-cinco-minutos-bo8</guid>
      <description>&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;Bilingual post&lt;/strong&gt; · Post bilíngue&lt;br&gt;&lt;br&gt;
Jump to: English · Português&lt;/p&gt;
&lt;/blockquote&gt;




&lt;h2&gt;
  
  
  English {#english}
&lt;/h2&gt;

&lt;h1&gt;
  
  
  CrabPascal Quick Start in Five Minutes
&lt;/h1&gt;

&lt;p&gt;You do not need a full Delphi IDE to run Pascal in 2026. &lt;strong&gt;CrabPascal v2.22.0&lt;/strong&gt; is a Rust-based compiler and runtime that lets you check, run, and optionally build native executables from &lt;code&gt;.dpr&lt;/code&gt; and &lt;code&gt;.pas&lt;/code&gt; files — in minutes.&lt;/p&gt;

&lt;h2&gt;
  
  
  What you need
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Windows&lt;/strong&gt;: download &lt;code&gt;crab-pascal.exe&lt;/code&gt; from the latest release, or install the VS Code extension (&lt;code&gt;crabpascal.crabpascal&lt;/code&gt;) for auto-install.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Any OS with Rust&lt;/strong&gt;: clone the repo and run &lt;code&gt;cargo build --release&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Optional&lt;/strong&gt;: gcc or clang only if you want &lt;code&gt;build-exe&lt;/code&gt; to emit a native binary.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Verify the install:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;crab-pascal &lt;span class="nt"&gt;--version&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;You should see &lt;code&gt;CrabPascal v2.22.0&lt;/code&gt;.&lt;/p&gt;

&lt;h2&gt;
  
  
  Your first program
&lt;/h2&gt;

&lt;p&gt;Create &lt;code&gt;HelloWorld.dpr&lt;/code&gt;:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight pascal"&gt;&lt;code&gt;&lt;span class="k"&gt;program&lt;/span&gt; &lt;span class="n"&gt;HelloWorld&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;span class="k"&gt;begin&lt;/span&gt;
  &lt;span class="k"&gt;WriteLn&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s"&gt;'Hello from CrabPascal!'&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
&lt;span class="k"&gt;end&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Run it immediately — no codegen step required:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;crab-pascal run HelloWorld.dpr
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Validate syntax and types without executing:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;crab-pascal check HelloWorld.dpr
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;The &lt;code&gt;check&lt;/code&gt; command runs lexing, parsing, and semantic analysis. Errors appear as &lt;code&gt;file:line:column: error: message&lt;/code&gt;, which integrates cleanly with VS Code problem matchers.&lt;/p&gt;

&lt;h2&gt;
  
  
  Three commands, three workflows
&lt;/h2&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Command&lt;/th&gt;
&lt;th&gt;When to use&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;check&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;CI, pre-commit, fast feedback while editing&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;run&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Prototyping, examples, Horse HTTP servers&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;build-exe&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Shipping a standalone &lt;code&gt;.exe&lt;/code&gt; via C + gcc&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;For a quick sanity test, try a repo example:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="nb"&gt;cd &lt;/span&gt;examples/matematica
crab-pascal run matematica.dpr
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  Optional: native executable
&lt;/h2&gt;

&lt;p&gt;If gcc is on your PATH:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;crab-pascal build-exe HelloWorld.dpr &lt;span class="nt"&gt;--output&lt;/span&gt; HelloWorld.exe
./HelloWorld.exe
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Without gcc, &lt;code&gt;run&lt;/code&gt; still works through the internal runtime — zero external dependencies.&lt;/p&gt;

&lt;h2&gt;
  
  
  Next steps
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;Add &lt;code&gt;crabpascal.toml&lt;/code&gt; for search paths and Delphi/FPC mode.&lt;/li&gt;
&lt;li&gt;Install the VS Code extension for tasks and diagnostics.&lt;/li&gt;
&lt;li&gt;Explore &lt;code&gt;examples/crud/&lt;/code&gt; for a REST API with Horse.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;CrabPascal releases follow versioned sprints; v2.22.0 is the current stable line. Start with &lt;code&gt;run&lt;/code&gt; and &lt;code&gt;check&lt;/code&gt; — you will have a working Pascal loop before your coffee gets cold.&lt;/p&gt;




&lt;h2&gt;
  
  
  Português {#portugus}
&lt;/h2&gt;

&lt;h1&gt;
  
  
  Início rápido com CrabPascal em cinco minutos
&lt;/h1&gt;

&lt;p&gt;Você não precisa de um IDE Delphi completo para rodar Pascal em 2026. O &lt;strong&gt;CrabPascal v2.22.0&lt;/strong&gt; é um compilador e runtime escrito em Rust que permite verificar, executar e — opcionalmente — gerar executáveis nativos a partir de arquivos &lt;code&gt;.dpr&lt;/code&gt; e &lt;code&gt;.pas&lt;/code&gt;, em poucos minutos.&lt;/p&gt;

&lt;h2&gt;
  
  
  O que você precisa
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Windows&lt;/strong&gt;: baixe &lt;code&gt;crab-pascal.exe&lt;/code&gt; do release mais recente, ou instale a extensão VS Code (&lt;code&gt;crabpascal.crabpascal&lt;/code&gt;) com auto-instalação.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Qualquer SO com Rust&lt;/strong&gt;: clone o repositório e execute &lt;code&gt;cargo build --release&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Opcional&lt;/strong&gt;: gcc ou clang apenas se quiser usar &lt;code&gt;build-exe&lt;/code&gt; para gerar binário nativo.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Confirme a instalação:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;crab-pascal &lt;span class="nt"&gt;--version&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;A saída esperada inclui &lt;code&gt;CrabPascal v2.22.0&lt;/code&gt;.&lt;/p&gt;

&lt;h2&gt;
  
  
  Seu primeiro programa
&lt;/h2&gt;

&lt;p&gt;Crie &lt;code&gt;HelloWorld.dpr&lt;/code&gt;:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight pascal"&gt;&lt;code&gt;&lt;span class="k"&gt;program&lt;/span&gt; &lt;span class="n"&gt;HelloWorld&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;span class="k"&gt;begin&lt;/span&gt;
  &lt;span class="k"&gt;WriteLn&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s"&gt;'Hello from CrabPascal!'&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
&lt;span class="k"&gt;end&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Execute imediatamente — sem etapa de codegen:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;crab-pascal run HelloWorld.dpr
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Valide sintaxe e tipos sem executar:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;crab-pascal check HelloWorld.dpr
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;O comando &lt;code&gt;check&lt;/code&gt; executa análise léxica, parsing e semântica. Erros aparecem no formato &lt;code&gt;arquivo:linha:coluna: error: mensagem&lt;/code&gt;, compatível com problem matchers do VS Code.&lt;/p&gt;

&lt;h2&gt;
  
  
  Três comandos, três fluxos
&lt;/h2&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Comando&lt;/th&gt;
&lt;th&gt;Quando usar&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;check&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;CI, pre-commit, feedback rápido ao editar&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;run&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Prototipagem, exemplos, servidores Horse HTTP&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;build-exe&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Distribuir um &lt;code&gt;.exe&lt;/code&gt; standalone via C + gcc&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;Para um teste rápido, use um exemplo do repositório:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="nb"&gt;cd &lt;/span&gt;examples/matematica
crab-pascal run matematica.dpr
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  Opcional: executável nativo
&lt;/h2&gt;

&lt;p&gt;Se o gcc estiver no PATH:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;crab-pascal build-exe HelloWorld.dpr &lt;span class="nt"&gt;--output&lt;/span&gt; HelloWorld.exe
./HelloWorld.exe
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Sem gcc, o &lt;code&gt;run&lt;/code&gt; continua funcionando via runtime interno — zero dependências externas.&lt;/p&gt;

&lt;h2&gt;
  
  
  Próximos passos
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;Adicione &lt;code&gt;crabpascal.toml&lt;/code&gt; para search paths e modo Delphi/FPC.&lt;/li&gt;
&lt;li&gt;Instale a extensão VS Code para tasks e diagnósticos.&lt;/li&gt;
&lt;li&gt;Explore &lt;code&gt;examples/crud/&lt;/code&gt; para uma API REST com Horse.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;O CrabPascal evolui em sprints versionados; v2.22.0 é a linha estável atual. Comece com &lt;code&gt;run&lt;/code&gt; e &lt;code&gt;check&lt;/code&gt; — você terá um loop Pascal funcionando antes do café esfriar.&lt;/p&gt;




&lt;p&gt;&lt;em&gt;Published on &lt;a href="https://dev.to/crabpascal"&gt;dev.to/@crabpascal&lt;/a&gt; · Código em &lt;a href="https://bitbucket.org/alphatecnologia/crabpascal" rel="noopener noreferrer"&gt;CrabPascal&lt;/a&gt;&lt;/em&gt;&lt;/p&gt;

</description>
      <category>pascal</category>
      <category>rust</category>
      <category>compiler</category>
      <category>tutorial</category>
    </item>
    <item>
      <title>Introducing CrabPascal — Pascal with Rust Claws 🦀 | Apresentando o CrabPascal</title>
      <dc:creator>CrabPascal</dc:creator>
      <pubDate>Sun, 31 May 2026 18:17:31 +0000</pubDate>
      <link>https://dev.to/crabpascal/introducing-crabpascal-pascal-with-rust-claws-apresentando-o-crabpascal-44am</link>
      <guid>https://dev.to/crabpascal/introducing-crabpascal-pascal-with-rust-claws-apresentando-o-crabpascal-44am</guid>
      <description>&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;Bilingual post&lt;/strong&gt; · Post bilíngue&lt;br&gt;&lt;br&gt;
Jump to: English · Português&lt;/p&gt;
&lt;/blockquote&gt;




&lt;h2&gt;
  
  
  English {#english}
&lt;/h2&gt;

&lt;h1&gt;
  
  
  Introducing CrabPascal
&lt;/h1&gt;

&lt;p&gt;&lt;strong&gt;CrabPascal&lt;/strong&gt; is an open-source Pascal compiler and runtime written in &lt;strong&gt;Rust&lt;/strong&gt;. It targets developers who work with &lt;strong&gt;Delphi&lt;/strong&gt; and &lt;strong&gt;Free Pascal&lt;/strong&gt; and want a modern toolchain: fast feedback, a real CLI, VS Code / Cursor integration, and enough language parity to run real-world examples — without installing a full Delphi IDE.&lt;/p&gt;

&lt;p&gt;Current version: &lt;strong&gt;v2.22.0&lt;/strong&gt;.&lt;/p&gt;

&lt;h2&gt;
  
  
  Why another Pascal compiler?
&lt;/h2&gt;

&lt;p&gt;Delphi and FPC are mature, but they can feel heavy for quick experiments, CI pipelines, or teaching. CrabPascal focuses on:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Fast compile-check loop&lt;/strong&gt; — &lt;code&gt;crab-pascal check&lt;/code&gt; with real line/column diagnostics&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Run without codegen&lt;/strong&gt; — interpreter/runtime for rapid iteration&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Optional native build&lt;/strong&gt; — &lt;code&gt;build-exe&lt;/code&gt; emits C and compiles with gcc/clang&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Modern RTL shims&lt;/strong&gt; — &lt;code&gt;System.*&lt;/code&gt;, generics collections, classes, exceptions (in progress by sprint)&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Zero Delphi license&lt;/strong&gt; — MIT, Rust toolchain only&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Hello, world
&lt;/h2&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight pascal"&gt;&lt;code&gt;&lt;span class="k"&gt;program&lt;/span&gt; &lt;span class="n"&gt;HelloWorld&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;span class="k"&gt;begin&lt;/span&gt;
  &lt;span class="k"&gt;WriteLn&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s"&gt;'Hello from CrabPascal!'&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
&lt;span class="k"&gt;end&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;





&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;crab-pascal run HelloWorld.dpr
crab-pascal check HelloWorld.dpr
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  REST API in Pascal (Horse)
&lt;/h2&gt;

&lt;p&gt;CrabPascal ships examples using &lt;strong&gt;Horse&lt;/strong&gt;, a popular Delphi HTTP framework:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight pascal"&gt;&lt;code&gt;&lt;span class="k"&gt;program&lt;/span&gt; &lt;span class="n"&gt;SimpleAPI&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;span class="k"&gt;uses&lt;/span&gt; &lt;span class="n"&gt;Horse&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;System&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;JSON&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;

&lt;span class="k"&gt;begin&lt;/span&gt;
  &lt;span class="n"&gt;THorse&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;Get&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s"&gt;'/ping'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
    &lt;span class="k"&gt;procedure&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;Req&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="n"&gt;THorseRequest&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt; &lt;span class="n"&gt;Res&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="n"&gt;THorseResponse&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt; &lt;span class="n"&gt;Next&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="n"&gt;TNextProc&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
    &lt;span class="k"&gt;var&lt;/span&gt; &lt;span class="n"&gt;J&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="n"&gt;TJSONObject&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
    &lt;span class="k"&gt;begin&lt;/span&gt;
      &lt;span class="n"&gt;J&lt;/span&gt; &lt;span class="p"&gt;:=&lt;/span&gt; &lt;span class="n"&gt;TJSONObject&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;Create&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
      &lt;span class="n"&gt;J&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;AddPair&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s"&gt;'message'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="s"&gt;'pong'&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
      &lt;span class="n"&gt;Res&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;Send&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;J&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;ToJSON&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
    &lt;span class="k"&gt;end&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;

  &lt;span class="n"&gt;THorse&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;Listen&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="m"&gt;9000&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
&lt;span class="k"&gt;end&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Run it, then &lt;code&gt;curl http://localhost:9000/ping&lt;/code&gt; — real HTTP, real JSON.&lt;/p&gt;

&lt;h2&gt;
  
  
  Tooling
&lt;/h2&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Command&lt;/th&gt;
&lt;th&gt;Purpose&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;check&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Lex + parse + semantic analysis&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;run&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Execute via internal runtime&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;build-exe&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Generate C + native binary&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;preproc&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Handle &lt;code&gt;{$IFDEF}&lt;/code&gt; directives&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;There is also a &lt;strong&gt;VS Code / Cursor extension&lt;/strong&gt; (&lt;code&gt;crabpascal.crabpascal&lt;/code&gt;) with problem matchers, tasks, and optional auto-install of the compiler binary on Windows.&lt;/p&gt;

&lt;h2&gt;
  
  
  Project status (2026)
&lt;/h2&gt;

&lt;p&gt;CrabPascal is actively developed in &lt;strong&gt;versioned sprints&lt;/strong&gt; (roughly one release per sprint). Recent focus areas:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Real diagnostic spans&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;System.*&lt;/code&gt; namespaces and RTL coverage&lt;/li&gt;
&lt;li&gt;OOP: classes, properties, exceptions&lt;/li&gt;
&lt;li&gt;Delphi-style strings and Unicode&lt;/li&gt;
&lt;li&gt;Generics (&lt;code&gt;TList&amp;lt;T&amp;gt;&lt;/code&gt;, &lt;code&gt;TDictionary&amp;lt;K,V&amp;gt;&lt;/code&gt;)&lt;/li&gt;
&lt;li&gt;Parser hardening and honest &lt;code&gt;build-exe&lt;/code&gt; parity with &lt;code&gt;run&lt;/code&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;It is &lt;strong&gt;not&lt;/strong&gt; a drop-in replacement for Delphi yet — but it is already useful for learning, prototyping, and running curated examples from the repo.&lt;/p&gt;

&lt;h2&gt;
  
  
  Get involved
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;Repository: &lt;a href="https://bitbucket.org/alphatecnologia/crabpascal" rel="noopener noreferrer"&gt;bitbucket.org/alphatecnologia/crabpascal&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;Dev.to: &lt;a href="https://dev.to/crabpascal"&gt;@crabpascal&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;Issues, examples, and docs welcome&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;More deep-dive articles coming soon: generics, the runtime model, and how we approach Delphi compatibility sprint by sprint.&lt;/p&gt;




&lt;h2&gt;
  
  
  Português {#portugus}
&lt;/h2&gt;

&lt;h1&gt;
  
  
  Apresentando o CrabPascal
&lt;/h1&gt;

&lt;p&gt;O &lt;strong&gt;CrabPascal&lt;/strong&gt; é um compilador e runtime Pascal open source escrito em &lt;strong&gt;Rust&lt;/strong&gt;. Ele mira quem trabalha com &lt;strong&gt;Delphi&lt;/strong&gt; e &lt;strong&gt;Free Pascal&lt;/strong&gt; e quer uma toolchain moderna: feedback rápido, CLI de verdade, integração com VS Code / Cursor e paridade suficiente para rodar exemplos reais — sem instalar um IDE Delphi completo.&lt;/p&gt;

&lt;p&gt;Versão atual: &lt;strong&gt;v2.22.0&lt;/strong&gt;.&lt;/p&gt;

&lt;h2&gt;
  
  
  Por que outro compilador Pascal?
&lt;/h2&gt;

&lt;p&gt;Delphi e FPC são maduros, mas podem ser pesados para experimentos rápidos, pipelines de CI ou ensino. O CrabPascal foca em:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Loop rápido de verificação&lt;/strong&gt; — &lt;code&gt;crab-pascal check&lt;/code&gt; com diagnósticos reais (linha/coluna)&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Executar sem codegen&lt;/strong&gt; — interpretador/runtime para iterar rápido&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Build nativo opcional&lt;/strong&gt; — &lt;code&gt;build-exe&lt;/code&gt; gera C e compila com gcc/clang&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;RTL moderno&lt;/strong&gt; — shims &lt;code&gt;System.*&lt;/code&gt;, generics collections, classes, exceptions (evoluindo por sprint)&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Sem licença Delphi&lt;/strong&gt; — MIT, só precisa do toolchain Rust&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Hello, world
&lt;/h2&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight pascal"&gt;&lt;code&gt;&lt;span class="k"&gt;program&lt;/span&gt; &lt;span class="n"&gt;HelloWorld&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;span class="k"&gt;begin&lt;/span&gt;
  &lt;span class="k"&gt;WriteLn&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s"&gt;'Hello from CrabPascal!'&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
&lt;span class="k"&gt;end&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;





&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;crab-pascal run HelloWorld.dpr
crab-pascal check HelloWorld.dpr
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  API REST em Pascal (Horse)
&lt;/h2&gt;

&lt;p&gt;O CrabPascal inclui exemplos com &lt;strong&gt;Horse&lt;/strong&gt;, framework HTTP popular no ecossistema Delphi:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight pascal"&gt;&lt;code&gt;&lt;span class="k"&gt;program&lt;/span&gt; &lt;span class="n"&gt;SimpleAPI&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;span class="k"&gt;uses&lt;/span&gt; &lt;span class="n"&gt;Horse&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;System&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;JSON&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;

&lt;span class="k"&gt;begin&lt;/span&gt;
  &lt;span class="n"&gt;THorse&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;Get&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s"&gt;'/ping'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
    &lt;span class="k"&gt;procedure&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;Req&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="n"&gt;THorseRequest&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt; &lt;span class="n"&gt;Res&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="n"&gt;THorseResponse&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt; &lt;span class="n"&gt;Next&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="n"&gt;TNextProc&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
    &lt;span class="k"&gt;var&lt;/span&gt; &lt;span class="n"&gt;J&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="n"&gt;TJSONObject&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
    &lt;span class="k"&gt;begin&lt;/span&gt;
      &lt;span class="n"&gt;J&lt;/span&gt; &lt;span class="p"&gt;:=&lt;/span&gt; &lt;span class="n"&gt;TJSONObject&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;Create&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
      &lt;span class="n"&gt;J&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;AddPair&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s"&gt;'message'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="s"&gt;'pong'&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
      &lt;span class="n"&gt;Res&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;Send&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;J&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;ToJSON&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
    &lt;span class="k"&gt;end&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;

  &lt;span class="n"&gt;THorse&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;Listen&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="m"&gt;9000&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
&lt;span class="k"&gt;end&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Execute e teste com &lt;code&gt;curl http://localhost:9000/ping&lt;/code&gt; — HTTP e JSON de verdade.&lt;/p&gt;

&lt;h2&gt;
  
  
  Ferramentas
&lt;/h2&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Comando&lt;/th&gt;
&lt;th&gt;Função&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;check&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Lex + parse + análise semântica&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;run&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Executa via runtime interno&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;build-exe&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Gera C + binário nativo&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;preproc&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Trata diretivas &lt;code&gt;{$IFDEF}&lt;/code&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;Há também extensão para &lt;strong&gt;VS Code / Cursor&lt;/strong&gt; (&lt;code&gt;crabpascal.crabpascal&lt;/code&gt;) com problem matcher, tasks e auto-instalação opcional do binário no Windows.&lt;/p&gt;

&lt;h2&gt;
  
  
  Status do projeto (2026)
&lt;/h2&gt;

&lt;p&gt;O CrabPascal evolui em &lt;strong&gt;sprints versionadas&lt;/strong&gt; (cerca de uma release por sprint). Focos recentes:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Spans reais nos diagnósticos&lt;/li&gt;
&lt;li&gt;Namespaces &lt;code&gt;System.*&lt;/code&gt; e cobertura da RTL&lt;/li&gt;
&lt;li&gt;OOP: classes, properties, exceptions&lt;/li&gt;
&lt;li&gt;Strings estilo Delphi e Unicode&lt;/li&gt;
&lt;li&gt;Generics (&lt;code&gt;TList&amp;lt;T&amp;gt;&lt;/code&gt;, &lt;code&gt;TDictionary&amp;lt;K,V&amp;gt;&lt;/code&gt;)&lt;/li&gt;
&lt;li&gt;Parser mais robusto e paridade honesta entre &lt;code&gt;run&lt;/code&gt; e &lt;code&gt;build-exe&lt;/code&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Ainda &lt;strong&gt;não&lt;/strong&gt; substitui o Delphi por completo — mas já serve para aprender, prototipar e rodar os exemplos curados do repositório.&lt;/p&gt;

&lt;h2&gt;
  
  
  Participe
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;Repositório: &lt;a href="https://bitbucket.org/alphatecnologia/crabpascal" rel="noopener noreferrer"&gt;bitbucket.org/alphatecnologia/crabpascal&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;Dev.to: &lt;a href="https://dev.to/crabpascal"&gt;@crabpascal&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;Issues, exemplos e docs são bem-vindos&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Em breve: artigos sobre generics, modelo de runtime e como abordamos compatibilidade com Delphi sprint a sprint.&lt;/p&gt;




&lt;p&gt;&lt;em&gt;Published on &lt;a href="https://dev.to/crabpascal"&gt;dev.to/@crabpascal&lt;/a&gt; · Código em &lt;a href="https://bitbucket.org/alphatecnologia/crabpascal" rel="noopener noreferrer"&gt;CrabPascal&lt;/a&gt;&lt;/em&gt;&lt;/p&gt;

</description>
      <category>pascal</category>
      <category>rust</category>
      <category>compiler</category>
      <category>delphi</category>
    </item>
  </channel>
</rss>
