並び順

ブックマーク数

期間指定

  • から
  • まで

1 - 40 件 / 77件

新着順 人気順

パーサーの検索結果1 - 40 件 / 77件

タグ検索の該当結果が少ないため、タイトル検索結果を表示しています。

パーサーに関するエントリは77件あります。 プログラミングprogrammingarticle などが関連タグです。 人気エントリには 『新しいマークダウンパーサーが必要な理由 | NHN Cloud Meetup』などがあります。
  • 新しいマークダウンパーサーが必要な理由 | NHN Cloud Meetup

    最近の開発者が最も好むドキュメント形式を挙げるとしたら断然マークダウンになるでしょう。マークダウンは、GitHub、GitLab、Bitbucketなど、タスクやイシュー管理に対応するほとんどのサービスにおいて、基本のドキュメント形式として使用されています。また、IntelliJ、VSCode、Vim、Emacsなど、ほぼすべてのテキスト編集ツールでも、プラグインを通じてマークダウン文書の強調構文やプレビュー機能を使用することができます。 TOAST UI Editorはここからさらに一歩進んで、マークダウンエディターとウィジウィグエディターを統合した形式のインターフェースを提供しています。ウィジウィグエディターを使用すると、テーブルなどの複雑な文法をより直感的に簡単に編集することができ、マークダウンに慣れていないユーザーでもマークダウン基盤の文書を簡単に編集できます。特に、開発者と非開発

      新しいマークダウンパーサーが必要な理由 | NHN Cloud Meetup
    • RustでJSONパーサーをフルスクラッチで実装する - Qiita

      この記事はRust Advent Calendar 2021 カレンダー2の1日目の記事です。 はじめに エンジニアは一度はJSONパーサーをフルスクラッチで実装したほうが良いという天啓を受け、RFC 8259を読みつつRustでJSONパーサーを実装してみました。パーサーの実装は面白く勉強になり満足しましたが折角なのでhands-on形式の記事にしようと思いこの記事を書きました。 Rustの基本的な文法が分かる方向けに記事を書きましたが、これからRustを勉強してみたい方にもぜひ挑戦してほしいです。 複雑な機能は使っていないので、分からない文法や標準ライブラリは公式ドキュメントを読めば十分補完できると思います。 The Rust Programming Language 日本語版 Rust by Example 日本語版 monkey-json 本記事ではRustでJSONパーサー(mo

        RustでJSONパーサーをフルスクラッチで実装する - Qiita
      • gojqのパーサーを書き直しました - プログラムモグモグ

        jqはJSONを絞り込むツールですが、実はれっきとしたプログラミング言語です。 算術演算子、論理演算子、分岐構文、try・catch、そして関数定義があり、ループは再帰関数で実装します。 単に .foo とか .[0] とかでJSONを辿るだけのツールだと思われている方は、builtin関数の定義を見ていただくと良いかと思います。 selectやmapのように、よく使われる関数でさえ内部実装になっていない (Cで書かれていない) のは面白いですね。 jqのクエリを思ったように書けないという経験から、jqをより深く知るためにGo言語で再実装したのがgojqです。 去年の4月から開発を始め、8月にブログ記事を書きました。 jqのほぼすべての機能を実装しており、pure Goで書かれているのでGo言語のツールに簡単に組み込むことができます。 この記事公開以降も開発を続けています。 --arg,

          gojqのパーサーを書き直しました - プログラムモグモグ
        • Rubyパーサーを一新するprism(旧YARP)プロジェクトの全容と将来(翻訳)|TechRacho by BPS株式会社

          概要 原著者の許諾を得て翻訳・公開いたします。 英語記事: Rewriting the Ruby parser | Rails at Scale 原文公開日: 2023/06/12 原著者: Kevin Newton サイト: Rails at Scale | The Ruby and Rails Infrastructure team at Shopify exists to help ensure that Ruby and Rails are 100-year tools that will continue to merit being our toolchain of choice. 日本語タイトルは内容に即したものにしました。 なお、本記事では「パーサー」(parser: 構文解析器)はカタカナで、lexer(字句解析器)は英ママで表記します。 参考: 構文解析 - Wikip

            Rubyパーサーを一新するprism(旧YARP)プロジェクトの全容と将来(翻訳)|TechRacho by BPS株式会社
          • Zig で簡単な JSON パーサを書いてみた。

            #include <stdio.h> int main(int argc, char* argv[]) { int i; for (i = 1; i <= 100; i++) { if (i % 15 == 0) puts("FizzBuzz"); else if (i % 15 == 0) puts("FizzBuzz"); else if (i % 3 == 0) puts("Fizz"); else if (i % 5 == 0) puts("Buzz"); else printf("%d\n", i); } return 0; } fn main() { let mut x = 1; while x <= 100 { if x % 15 == 0 { println!("FizzBuzz"); } else if x % 3 == 0 { println!("Fizz"); } e

              Zig で簡単な JSON パーサを書いてみた。
            • Webブラウザのもう一つのパーサ: Preload Scanner | PerfData

              Firefoxでは、Preload Scannerという呼称ではなく、Speculative Parserと呼称されています。 Shallow Parsing Preload Scannerは、Shallow Parsing(浅いパース処理)という手法を使います。 Shallow Parsingシャローパーシングとは、文法解析の一種であり、構文解析の表層的なレベルで行われる解析手法です。 Shallow Parsingは、文法構造を完全に解析する深層解析(Deep Parsing)とは異なり、文書やコードの全体的な構造を理解しようとはせず、特定の情報やパターンを効率的に抽出することに焦点を当てています。 WebブラウザのPreload Scannerにおいては、Shallow ParsingがHTMLドキュメントの表層的な構造を迅速に解析する役割を担っています。 Preload Scann

                Webブラウザのもう一つのパーサ: Preload Scanner | PerfData
              • JSONパーサにファジングしたら収拾がつかなくなりました

                ファジング(Fuzzing)が便利 コンピュータにランダムに生成させたデータを入力とし、ソフトウェアの予期せぬ挙動を観測・発見する手法がファジングです。脆弱性発見の文脈で使われることが多いですが、一般的なごく普通のソフトウェア開発でも便利に使うことができます。私もこれまでに何度か、開発中の関数にファジングを行うことで、想定できていなかったバグを見つけたことがあります。 ファジングの大きな魅力の1つは、個人の想像力を超えることができる点です。開発をテスト駆動で進めているとしても、必要となるテストをすべて網羅できていない場合が多々あります。テスト駆動開発はあくまでも個人(あるいはチームメンバー)が見つけることができたテストしか実行できないので、その人の能力や想像力を超えることができません。しかしファジングであれば、人が考えもつかないようなパターンを試してくれます。もちろんファジングもブルートフ

                  JSONパーサにファジングしたら収拾がつかなくなりました
                • WHATWG Living StandardとHTMLパーサ - Qiita

                  この記事はドワンゴ Advent Calendar 2020 最終日の記事です。年の瀬ですね。 はじめに 本記事は、WHATWG Living Standardに準拠することを目的としたHTMLパーサである「gammo」の紹介を目的としている。gammoが実現していることを詳細に伝えるため、単なるgemの紹介に留まらず、HTMLの歴史や昨今のHTMLを取り巻く状況を簡単に解説し、WHATWG Living StandardにおけるHTML文書の解析アルゴリズムについて、実例と共に紹介する。 本記事で紹介するgammoの開発に取り掛かった理由は、主に以下の二点が挙げられる。 WHATWG Living Standardに準拠したHTMLパーサをRubyGemsの中から見つけられなかったため。 現在HTMLパーサの機能を持つライブラリの中で、最も利用されていると考えられるNokogiriと比較

                    WHATWG Living StandardとHTMLパーサ - Qiita
                  • Prism:エラートレラントな、まったく新しいRubyパーサ | gihyo.jp

                    Ruby 3.3リリース! 新機能解説 Prism⁠⁠:エラートレラントな⁠⁠、まったく新しいRubyパーサ Prismは、Ruby 3.3.0にバンドルされた新しいライブラリで、プログラミング言語Rubyの新しいパーサであるPrismパーサのバインディングです。Prismはエラートレラント、移植性、メンテナンス性、高速性、効率性を考慮して設計されています。この記事では、Prismの歴史、設計、API、そして今後の課題について取り上げます。 使用方法 Rubyバインディングを通してPrismパーサを使うにはrequire "prism"をして、Prismモジュールのparseメソッド、または他のparse_*系のメソッドを呼んでください。次に例を示します。 require "prism" Prism.parse("1 + 2") parseメソッドは、パース結果のオブジェクトを返します。こ

                      Prism:エラートレラントな、まったく新しいRubyパーサ | gihyo.jp
                    • ChatGPT (Advanced Data Analysis)でBNF式からパーサーを生成する - Taste of Tech Topics

                      こんにちは、最近ピアノを習い始めた安部です。 今回は、ChatGPTのAdvanced Data Analysis (旧Code Interpreter)にBNF式を与えてパーサーを作成してもらおうと思います。 BNF式のように機械的に解釈可能なものであれば、正確にコードを生成してくれるのではないでしょうか? BNFでうまくいけば、その他の様々な形式のデータやフォーマットからパーサーを自動生成してくれることが期待できそうです。 1. BNFとは BNF(バッカス・ナウア記法)とは、プログラムの構文規則(文脈自由文法)を記述するための記法です。 正確な定義よりも具体例を見た方が早く理解できると思うので、例を示します。 『プログラム意味論』(横内寛文 著)の冒頭に登場する、非常に単純なプログラムを許容する言語の定義です。 <変数> ::= A | B | C | ... | Z <定数> ::

                        ChatGPT (Advanced Data Analysis)でBNF式からパーサーを生成する - Taste of Tech Topics
                      • Rustでマークダウンパーサーを自作して、WASM+Nuxt3+Viteで動かしてみた

                        はじめに Rustと言語処理系の勉強のため、簡易的なマークダウンパーサーをスクラッチで実装し、生成したWASMをNuxt3+Viteの環境で動かしてみました。 言語処理系の概要 マークダウンパーサを実装する前に、一般的な言語処理系について考えてみます。 コンパイラやインタプリタに代表される処理系の構成は以下のようになっています。 字句解析 テキストを字句の列(トークン)に分解すること 字句解析を行うプログラムを 字句解析器(lexerまたはtokenizer) と呼びます。 構文解析 トークン列を 抽象構文木(abstract syntax treeまたはAST) に変換する。抽象構文木とは、言語の構文を解釈し、データ構造を取り出した(抽象化した)木構造のこと たとえばDOMツリーは、HTMLの構文を解釈(構文解析)し、要素(タグ)を木構造で表現したものです。 How browsers w

                          Rustでマークダウンパーサーを自作して、WASM+Nuxt3+Viteで動かしてみた
                        • Rustで作るtree-sitterパーサーのRubyバインディング

                          大阪Ruby会議04

                            Rustで作るtree-sitterパーサーのRubyバインディング
                          • 「Unicode 15.0」に対応した「GNU Emacs 29.1」、高速パーサー「tree-sitter」の採用も/Windows環境ではダブルバッファリングをサポート

                              「Unicode 15.0」に対応した「GNU Emacs 29.1」、高速パーサー「tree-sitter」の採用も/Windows環境ではダブルバッファリングをサポート
                            • TypeScriptパーサーのベンチマーク:Rustツールの性能の謎を解く

                              TL;DR: JavaScriptで使われるネイティブパーサーは、言語間の余分な作業のために常に速いとは限りません。これらのオーバーヘッドを回避し、マルチコアを使うことが性能にとって重要です。 Rustは、そのパフォーマンスと安全性の特徴から、JavaScriptエコシステムの中で急速に選択肢の一つになっています。しかし、RustをJavaScriptツールに統合することは、特に効率的で移植性の高いプラグインシステムを設計する際に、固有の課題をもたらします。 「JavaScriptツールをRustで書き直すことは、広範な外部貢献を必要としない速度重視のプロジェクトにとって有利です。」 ESLintの作者であるNicholas C. Zakas Rustは、その急な学習曲線のために難しいものになりがちで、さらにコンパイルされたバイナリを異なるプラットフォームに配布することも簡単ではありません

                                TypeScriptパーサーのベンチマーク:Rustツールの性能の謎を解く
                              • Ruby Parser開発日誌 (9) - RubyKaigi 2023で発表してきた ~ 世はまさに”大パーサー時代” ~ - かねこにっき

                                5/10から5/14の5日間、RubyKaigi 2023に参加するために松本市に行ってきました。前回参加したのがRubyKaigi 2019の福岡のときなので、じつに4年ぶりの参加でした。 今回はコミッター/登壇者/LTスピーカーとしての参加になりました。その結果、0日目のDevMeeting含めて3種類のスライドをつくり、3日目の"Ruby Committers and The World"含めて3回登壇するというイベント盛りだくさんなKaigiでした。 いやー、自分のRubyKaigi史上、最高のRubyKaigiでしたね。まさにParserKaigiだったのではないでしょうか。 いろいろ書きたいことはありますが、まずは時系列で振り返っていきましょう。 Day 0 (5/10) - DevMeeting DevMeetingに参加するためDay 0から松本へ向かいました。新宿から特急

                                  Ruby Parser開発日誌 (9) - RubyKaigi 2023で発表してきた ~ 世はまさに”大パーサー時代” ~ - かねこにっき
                                • JSONパーサーがC++からRustになった「Google Chrome 128」、ゼロデイ脆弱性の修正も/日本人ユーザーはルビの改善にも注目

                                    JSONパーサーがC++からRustになった「Google Chrome 128」、ゼロデイ脆弱性の修正も/日本人ユーザーはルビの改善にも注目
                                  • 自作マークダウンパーサーとNext13+Prisma+GraphQL+Supabaseでブログを自作した

                                    はじめに 以前RustとWASMでマークダウンパーサーを自作したので、これを使ってブログを作ってみました。 ソースコードは以下にあります。 技術構成 技術構成は以下のようになっています。 全体構成 フロントエンド Next.js / Type Script Apollo Client(状態管理ライブラリ) styled-components emotion mantine ミドルウェア Prisma BFF GraphQL Yoga(GraphQLサーバー) Pothos GraphQL(GraphQL スキーマビルダー) バックエンド Rust+WebAssembly(マークダウンパーサー) (Vercel Postgress(サーバレスストレージ)) Supabase デプロイ先 Vercel(FE/BF共通ホスティング先) 認証・認可 NextAuth ドメイン取得 Cloudfla

                                      自作マークダウンパーサーとNext13+Prisma+GraphQL+Supabaseでブログを自作した
                                    • 新しいRubyパーサーPrism利用時の開発体験の変化

                                      この記事で扱っていること 本記事ではRuby 3.3で導入されたPrismという新しいパーサーについて扱っています Prismが持つ「パース時に問題が発生した場合でも可能な限り意味のある結果を返却する」という機能に着目して下記について話します Rubyを記述する際の開発者体験がどれくらい向上しているのか? 「可能な限り意味のある結果」をどうやって組み立てているのか? 最後に主テーマから外れますが、Prismの動かし方についても話しています はじめに こんにちはウォンテッドリーで推薦基盤の改善をやっているnasaです 去年の12/25にもRubyの最新バージョンがサンタさんから届きました。https://www.ruby-lang.org/ja/news/2023/12/25/ruby-3-3-0-released/ 最新バージョンのRuby 3.3.0ではPrismという新しいパーサーが導

                                        新しいRubyパーサーPrism利用時の開発体験の変化
                                      • Big Sky :: コメントも扱える高機能な C++ 向け JSON パーサ「jsoncpp」

                                        おなじみC/C++から使えるJSONライブラリを紹介するコーナー。まずは過去のまとめ。 ヘッダファイルだけでC++から使えるJSONパーサ「picojson」が凄い! 何も見ずにC++でjsonパーサが書けるか試してみた。 C言語から使えるJSONパーサ、JSMNを試してみた。 僕がboost::asioとboost::property_treeを使いHTTPプロキシ環境下で非同期にGoogle Search APIから検索するまでにやった、たった一つの事。 C言語から使えるJSONパーサ、parson が思った以上に良い仕事をしている。 最速と言われる JSON パーサ「rapidjson」が本当に爆速なのか試してみた。 C言語から使えるJSONパーサ、jansson がとても直感的で良い C++ で STL フレンドリに扱えるJSONパーサ「json.hpp」 これまで C++ から扱

                                          Big Sky :: コメントも扱える高機能な C++ 向け JSON パーサ「jsoncpp」
                                        • moonbit で json パーサーを書いてみた 感想

                                          エアプにならないために、実際に moonbit を使ってコードを書いてみた感想を書く。 JSON Parser を書いた パッケージレジストリである https://mooncakes.io を見た限り、使いやすい json parser がなさそうなので、とりあえず自分用のをでっち上げた。 mooncakes.io に publish してあるので、 moon add mizchi/json で使える。品質が良くなくても ネームスペース付きで publish するので別に邪魔にならない気がした。 なんで作ったかというと、公式 example の cloudflare workers の example は単純なフィボナッチを計算するだけで、構造的なデータを返すことができない。 moonbit と js 間の文字列の受け渡しについては、あとで別の記事を書く。 使い方 fn main { l

                                            moonbit で json パーサーを書いてみた 感想
                                          • Python 3.11から新たに仲間に加わったTOMLパーサー | gihyo.jp

                                            いずれの形式でも、簡単なデータを表す場合はそれほど違いがありません。同一のデータがそれぞれのフォーマットでどのように表現されるか、簡単な例を使用して見比べてみます。 TOMLでは以下のように簡潔に表現できます。 [app] app_name = "example" environment.NAME = "sandbox" environment.VERSION = "0.0.1" volumes = ["vol1", "vol2"] YAMLでは以下のようになります。このデータにおいてはシンプルで可読性も悪くありません。 しかし、YAMLはインデントを使用してデータ構造を表現することから、ネストが深くなってしまうことがあります。ネストが深くなると可読性が悪くなり、インデントがずれてパースエラーや意図しない階層構造で読み込まれてしまうことがあるので注意が必要です。 app: app_name

                                              Python 3.11から新たに仲間に加わったTOMLパーサー | gihyo.jp
                                            • 「DevToys」にcronパーサーが追加 ~開発者向けに便利なツールを集めた十徳ナイフ/コントラスト比チェックやXML検証も追加してさらに強力に

                                                「DevToys」にcronパーサーが追加 ~開発者向けに便利なツールを集めた十徳ナイフ/コントラスト比チェックやXML検証も追加してさらに強力に
                                              • パーサ・ダスグプタ「“自然”を考慮しない、これまでの経済モデルは根本的に間違っていた」 | 環境破壊を許すGDPという指標は捨てるべきだ

                                                従来の経済モデルは根本的に間違っていた 英ケンブリッジ大学のパーサ・ダスグプタ名誉教授による『生物多様性の経済学:ダスグプタ・レビュー』は2021年初めに出版され、論争を巻き起こした。人類は、持続可能な形で世界の総資産構成を集団的に管理するのに失敗したと彼は論じる。 「人類はここ数十年で大きく繁栄したが、そうした繁栄を成し遂げるために、私たちは自然に壊滅的なダメージを与えてきた」 経済学者であるダスグプタは、従来の経済モデルが「資産としての自然」を無視し、人間の活動による生物圏への負の影響を無視してきたことを批判し、こうした態度が後世の繁栄を危うくすると報告書で示している。 ──従来の経済モデルは自然をどのように評価するのでしょうか。 自然は断片的に評価されています。すでに40〜50年の歴史をもつ環境経済学においては、異なる種類の自然資本を評価する試みがなされてきました。浜辺であれ公園であ

                                                  パーサ・ダスグプタ「“自然”を考慮しない、これまでの経済モデルは根本的に間違っていた」 | 環境破壊を許すGDPという指標は捨てるべきだ
                                                • Parolというパーサ生成ツールがすごい

                                                  parolというLL(k)パーサを生成するcrateがあるのですが、とにかくすごいので紹介します。 parolを知って、Rustでパーサをつくることに関して新しい時代が始まったなと思いました。 パーサコンビネータ Rustでパーサといえばnomやchumskyといったパーサコンビネータが主流の印象です。 これはjsonのように既に文法が定義されている場合やプログラミング言語のプロトタイピングに向いていると思います。 nomのREADMEにも後者について以下のように言及されています。 While programming language parsers are usually written manually for more flexibility and performance, nom can be (and has been successfully) used as a proto

                                                    Parolというパーサ生成ツールがすごい
                                                  • JSで書かれたECMAScript RegExpパーサーの比較 | Memory ice cubes

                                                    OXCで正規表現パーサーを実装してるときに全部一通り読んでみて、みんな違ってみんな良いってなったので。 候補はこちらの3つ。 https://github.com/jviereck/regjsparser https://github.com/DmitrySoshnikov/regexp-tree https://github.com/eslint-community/regexpp かのAST Explorerでも、RegExp部門ではこの3つがリストにある。 AST explorer https://astexplorer.net/ 前提 ECMAScript本体だと、ESTreeというデファクトがあるけど、残念ながらRegExpにはない。 ESTreeでのRegExpの扱いはこんな感じで、ただの文字列でしかない。 interface RegExpLiteral <: Literal

                                                      JSで書かれたECMAScript RegExpパーサーの比較 | Memory ice cubes
                                                    • markdown-wasm:WebAssemblyで記述された非常に高速なMarkdownパーサー

                                                      Spring BootによるAPIバックエンド構築実践ガイド 第2版 何千人もの開発者が、InfoQのミニブック「Practical Guide to Building an API Back End with Spring Boot」から、Spring Bootを使ったREST API構築の基礎を学んだ。この本では、出版時に新しくリリースされたバージョンである Spring Boot 2 を使用している。しかし、Spring Boot3が最近リリースされ、重要な変...

                                                        markdown-wasm:WebAssemblyで記述された非常に高速なMarkdownパーサー
                                                      • 週刊Railsウォッチ(20200602後編)JSONストリームパーサーyajl-ruby、ruby-buildとopenssl、GoogleのCloud SQL、Rubyと機械学習ほか|TechRacho by BPS株式会社

                                                        2020.06.02 週刊Railsウォッチ(20200602後編)JSONストリームパーサーyajl-ruby、ruby-buildとopenssl、GoogleのCloud SQL、Rubyと機械学習ほか こんにちは、hachi8833です。例のRuby 3.0キーワード引数変更のつらみをmameさんがまとめてくださいました🙇。 I've posted a (current) summary of pain points about Ruby 3.0 keyword argument change. We'd still like to hear your opinions.https://t.co/6AijkjqtSW — Yusuke Endoh (@mametter) June 2, 2020 各記事冒頭には⚓でパーマリンクを置いてあります: 社内やTwitterでの議論などに

                                                          週刊Railsウォッチ(20200602後編)JSONストリームパーサーyajl-ruby、ruby-buildとopenssl、GoogleのCloud SQL、Rubyと機械学習ほか|TechRacho by BPS株式会社
                                                        • Lramaで簡単な自作言語のパーサを書いた - Qiita

                                                          先日 Ruby にマージされた LALR(1)パーサジェネレータ Lrama を使ってみました。 参考: RubyにlramaがマージされてBison依存がなくなった(RubyKaigi 2023)|TechRacho by BPS株式会社 できたもの https://github.com/sonota88/vm2gol-v2-c/tree/alt-parser-lrama alt-parser-lrama ブランチに mrcl_parser_lrama.y が入っています。 概要 Mini Ruccola は私がコンパイラ実装に入門するために作った自作言語とその処理系です。原始的だけどその分入門者(=私)視点では分かりやすい、という方向性のものです。私でも作れる簡単なコンパイラ。 作ったときに書いた備忘記事: RubyでオレオレVMとアセンブラとコード生成器を2週間で作ってライフゲームを

                                                            Lramaで簡単な自作言語のパーサを書いた - Qiita
                                                          • Rust: nom によるパーサー実装 - MOXBOX #Rust #nom

                                                            概要 nom は Rust で実装された字句解析ライブラリ (Lexer, Lexical Analyzer, Tokenizer) およびパーサコンビネーターです。プログラムのソースコードや DSL (domain specific language) のようなテキストデータの字句解析を実装できるのに加えて、バイナリデータの解析も前提に設計されています (実際、nom の作者は nom を使って GIF 画像ファイルのデコーダーを実装しています)。この記事は nom 5 に基づいてテキストデータを解析するチュートリアルを目的としています。 Table of Contents 概要 パーサーフレームワーク モジュール概要 パターン認識 パーサーの条件分岐や繰り返し 括弧の中の数字を抽出する 手続き型スタイルで解析する delimited: 括弧に囲まれた部分を取得する alt: 対応する括

                                                              Rust: nom によるパーサー実装 - MOXBOX #Rust #nom
                                                            • 週刊Railsウォッチ: ShopifyのRubyパーサーyarp、RJITを書いた理由ほか(20230413後編)|TechRacho by BPS株式会社

                                                              週刊Railsウォッチについて 各記事冒頭には🔗でパーマリンクを置いてあります: 社内やTwitterでの議論などにどうぞ 「つっつきボイス」はRailsウォッチ公開前ドラフトを(鍋のように)社内有志でつっついたときの会話の再構成です👄 お気づきの点がありましたら@hachi8833までメンションをいただければ確認・対応いたします🙏 TechRachoではRubyやRailsなどの最新情報記事を平日に公開しています。TechRacho記事をいち早くお読みになりたい方はTwitterにて@techrachoのフォローをお願いします。また、タグやカテゴリごとにRSSフィードを購読することもできます(例:週刊Railsウォッチタグ) 追記(2023/04/14): 来週の週刊Railsウォッチはお休みいたします 🙇 🔗Ruby 🔗 yarp: ShopifyのRubyパーサー(Rub

                                                                週刊Railsウォッチ: ShopifyのRubyパーサーyarp、RJITを書いた理由ほか(20230413後編)|TechRacho by BPS株式会社
                                                              • QiitaのMarkdownパーサーの変更をベータ版として公開します - Qiita Blog

                                                                こんにちは、Qiita運営です。 今日はQiitaのMarkdownパーサーの変更をベータ版としてリリースすることをお知らせします。 リリースは2022年2月9日を予定しています。 Markdownパーサーの変更についてこれまでのQiitaでは、Redcarpetを拡張したGreenmatを用いてMarkdownのパースを行っていました。 今回のベータ版リリースでは、CommonMarkerを拡張したQiita Markerへ変更いたします。 パーサーの変更によって細かな違いはありますが、基本的なパース結果は今までと変わりありません。 記法の変更箇所についての詳細は、Qiita運営による解説記事で説明予定ですので、あわせてご確認ください。 ベータ版では、以下のコンテンツを新規作成、もしくは編集をする際に新しいMarkdownパーサーでパースされます。 記事コメント質問回答既存の記事、コメン

                                                                  QiitaのMarkdownパーサーの変更をベータ版として公開します - Qiita Blog
                                                                • 「Google Chrome」はこうしてまた速くなった ~開発チームが最近の最適化手法を解説/局所的に速い新パーサー、ポインター圧縮の最適化、ハイエンドモバイル向け高速版を投入

                                                                    「Google Chrome」はこうしてまた速くなった ~開発チームが最近の最適化手法を解説/局所的に速い新パーサー、ポインター圧縮の最適化、ハイエンドモバイル向け高速版を投入
                                                                  • TypeScript >= 4.1 の Template Literal Types を活用した引数パーサーを作ってみた - ジンジャー研究室

                                                                    ヘルプっぽいものを書くと文字列をパースして型をつけてくれる。 デフォルト値を指定すると T | null が T になったりする。 公開は今のところ GitHub Packages だけです(メンテしなくていい方法を考え中) github.com 型レベルのパーサーはこちらの記事を大いに参考にしたというかパクりました。 (ネタ) TypeScript 型パズルで作るmini interpreter | by Yosuke Kurami | Medium こんなに本格的じゃないけど。 難しいなと思ったのは、せっかく型レベルでパースしてもその結果を値レベルの実装に利用できない点。 なので、型は型、値は値でそれぞれパースして最終的に辻褄が合うように実装しました。 それでは皆さま良いお年を。

                                                                      TypeScript >= 4.1 の Template Literal Types を活用した引数パーサーを作ってみた - ジンジャー研究室
                                                                    • ESTree 互換っぽい AST を出力する JavaScript のパーサーまとめ

                                                                      ESTree という JavaScript の AST の仕様がある。ESTree っぽいものを出力してくれるパーサーをまとめていく。 雑にまとめているので興味ある人とか詳しい人は適当に追記してもらって構いません。 @babel/parser Babel で使われているパーサー。最新の JavaScript だけでなく、まだ ECMAScript に入っていないプロポーザルや TypeScript、Flow もオプションで対応している。また、AST は ESTree と一部互換性がないものを出力するが、estree プラグインを使うことで、ESTree 互換の AST を出力させることもできる。 Prettier のデフォルトパーサー。@babel/eslint-parserを使うことで ESLint のパーサーとしても使うことができる。 @typescript-eslint/typesc

                                                                        ESTree 互換っぽい AST を出力する JavaScript のパーサーまとめ
                                                                      • zig言語でtomlパーサを書いてみた

                                                                        数ヶ月前にzig言語というやつの存在を知って、これはちょっと面白そうだなと思ったので、勉強がてらなにかやってみよう、と思っていた。ある日、tomlのパーサはどうだろうかと思い立ってしばらくやっていて(Ghost of Tsushima で作業が中断したりしつつ)、まあまあ出来上がってきたと思うので、現在のところのソースコードをgithubに置いておいた(https://github.com/jmuk/zig-toml)。 というわけで、zig言語をちょっと書いてみた感想を残しておく。なお、利用したのはzig 0.6.0なので、今後いろいろ変わってくる可能性もあることは強調しておきたい。 zig言語のよいところ・興味深いところ 型の扱いがzigでは興味深いところだった。zigはかなりいろんなところでcomptimeというマーカをつけてコンパイル時にコンパイラが事前処理をするようなことができる

                                                                          zig言語でtomlパーサを書いてみた
                                                                        • 「Python 3.9」登場、デコレーターに関する制約の緩和、新しいパーサーの採用とは

                                                                          連載目次 前回は、Python 3.9で辞書に追加された和集合演算子、文字列に追加されたremoveprefix/removesuffixメソッドなどを取り上げた。今回は、デコレーターに関する制約が緩くなったことや、新しいパーサーについて簡単に見ていこう。 デコレーターに関する制約の緩和 ここでPython 3.8とPython 3.9におけるデコレーターの違いをPythonのドキュメントで比べてみよう。以下はPython 3.8のドキュメント「関数定義」の画面キャプチャーだ。ここにはデコレーターがどんなものかも定義されている(「decorator」という部分)。

                                                                            「Python 3.9」登場、デコレーターに関する制約の緩和、新しいパーサーの採用とは
                                                                          • Prattパーサであらゆる演算子をパースする

                                                                            PrattパーサをParsing mixfix operatorsの分類と組み合わせてあらゆる種類の演算子(含mixfix)をパースできるようなパーサへと育てていきます. 配列アクセスやif_then_else,括弧といった複雑な演算子がPrattパーサという統一的な方法でパースされます. 全文無料公開です.

                                                                              Prattパーサであらゆる演算子をパースする
                                                                            • rbsのtree-sitterパーサを書いて、neovimのシンタックスハイライトに利用する - joker1007’s diary

                                                                              皆さん型書いてますか?私はそもそもRubyを書いていません! とはいえ、最近Kaigi on RailsやRubyWorldとカンファレンスが続いていたので、ちょっとやる気を出してrbsを書くためのエコシステムに貢献しようと思い、rbs用のtree-sitterパーサを書いてみました。パーサ流行ってますからね。 github.com READMEにしたがってnvim-treesitterでパーサをインストールし、このリポジトリをneovimプラグインとしてインストールすれば、rbsのシンタックスハイライトがイカした感じになります。 しかし、しかしながらですね、これ半年ぐらい前に調べた時には誰も書いてなかったんですが、8割ぐらい書いた所で、既に別のtree-sitter-rbsがあることに気付いたんですよね……。 github.com まあ、せっかく作ったんで完全に同じ車輪の再発明だろうが、

                                                                                rbsのtree-sitterパーサを書いて、neovimのシンタックスハイライトに利用する - joker1007’s diary
                                                                              • HTMLパーサーの設計・実装ノート (1) 字句解析

                                                                                ふと思いつきでHTMLパーサーを書いているので、どのようなことを考えながら実装したかの記録を残します。 (1) 字句解析 (2) 構文解析 おことわり 偏ったこだわりや早すぎる最適化もあるかもしれませんが、あくまで趣味で書いているものなのでご理解ください。そういったもののなかにも、他の人の発想のヒントになるものも含まれると考えています。 途中の試行錯誤のサイクルを省いて結論だけを紹介している箇所もあります。ご了承ください。 ソースコードは https://github.com/qnighy/htstream に上げていますが、現在のところ完成度はそれほど高くありません。ドキュメントもほぼありませんがご了承ください。 HTMLについて HTMLの管轄をめぐっては紆余曲折がありましたが、現在はWebブラウザベンダーを中心とする標準化団体であるWHATWGが制定するHTML StandardがH

                                                                                  HTMLパーサーの設計・実装ノート (1) 字句解析
                                                                                • Ruby: 2024年までのPrismパーサーの長い歴史を振り返る(翻訳)|TechRacho by BPS株式会社

                                                                                  概要 CC BY-NC-SA 4.0 Deedに基づいて翻訳・公開いたします。 英語記事: Prism in 2024 | Rails at Scale 原文公開日: 2024/04/16 原著者: Kevin Newton CC BY-NC-SA 4.0 Deed | 表示 - 非営利 - 継承 4.0 国際 | Creative Commons 日本語タイトルは内容に即したものにしました。 syntax treeは「構文ツリー」と訳しています。lexerは英ママとしています。 Ruby 3.3.0では、Prismと呼ばれる新しい標準ライブラリがCRubyに追加されました。PrismはRuby言語を解析するパーサーであり、Cライブラリ版(CRubyでもオプションで利用可能)とRubyライブラリ版(Ruby gemとして利用可能)の両方が公開されています。Prismプロジェクトは多くの開発

                                                                                    Ruby: 2024年までのPrismパーサーの長い歴史を振り返る(翻訳)|TechRacho by BPS株式会社

                                                                                  新着記事