並び順

ブックマーク数

期間指定

  • から
  • まで

1 - 40 件 / 136件

新着順 人気順

parserの検索結果1 - 40 件 / 136件

parserに関するエントリは136件あります。 プログラミングprogrammingarticle などが関連タグです。 人気エントリには 『🚀⚙️ JavaScript Visualized: the JavaScript Engine』などがあります。
  • 🚀⚙️ JavaScript Visualized: the JavaScript Engine

    JavaScript is cool (don't @ me), but how can a machine actually understand the code you've written? As JavaScript devs, we usually don't have to deal with compilers ourselves. However, it's definitely good to know the basics of the JavaScript engine and see how it handles our human-friendly JS code, and turns it into something machines understand! 🥳 | Note: This post is mainly based on the V8 eng

      🚀⚙️ JavaScript Visualized: the JavaScript Engine
    • jqのGo実装 gojq を作りました! ― スタックマシン型インタープリタによるイテレータセマンティクスの実装 - プログラムモグモグ

      jqはとても便利なコマンドです。 JSONを返すAPIを実装するときや、SaaSのAPIから特定の情報を抜き出してシェル変数に代入するときなど、web開発や運用には欠かせないツールとなっています。 しかし、私にとってjqのクエリを一発で書くのは容易ではなく、思い通りの出力が得られないことがよくありました。 難しいエラーメッセージに悩まされて、jqで書くのを諦めて別の言語で書き直すこともありました。 jqの十八番と思える場面で使いこなせないのは、なかなか悔しいものがあります。 ツールを使うのが難しいなら、同じものを作ってしまえばよいのです。 jqの全ての機能を実装する jqを言語としてきちんと書けるようになる jqを完全に理解する jqの全ての機能を自分で実装してしまえば、jqがどういうものか、クエリがどのように処理されるのか、詳しくなれるはずです。 jqを得意な言語と言えるようになって、ク

        jqのGo実装 gojq を作りました! ― スタックマシン型インタープリタによるイテレータセマンティクスの実装 - プログラムモグモグ
      • すべてのエディタでSQLの自動補完をするためにSQL Language Server(sqls)を作った - Qiita

        sqlsとは sqlsとは、いま私が開発中のSQL用Language Serverです。SQLをエディタで編集するときの支援機能を実装したサーバとなっており、主な特徴は以下です。 Language ServerなのでLSクライアントが存在するエディタであればどんなエディタでも利用可能 SQL編集支援機能 自動補完(テーブル名、カラム名など) 定義参照 SQL実行 複数のRDSMSに対応 MySQL PostgreSQL SQLite3 Language Serverとは Language Server(あるいはLanguage Server Protocol)とは、プログラム言語の開発支援機能をエディタに提供するサーバ、およびその通信内容を規定したプロトコルです。ただしサーバといってもほとんどの場合ローカル内にホスティングしてローカルのエディタと通信をします。 ここでは主題ではないので詳し

          すべてのエディタでSQLの自動補完をするためにSQL Language Server(sqls)を作った - Qiita
        • 新しいマークダウンパーサーが必要な理由 | 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
            • Google's robots.txt Parser is Now Open Source

              The latest news from Google on open source releases, major projects, events, and student outreach programs. Originally posted on the Google Webmaster Central Blog For 25 years, the Robots Exclusion Protocol (REP) was only a de-facto standard. This had frustrating implications sometimes. On one hand, for webmasters, it meant uncertainty in corner cases, like when their text editor included BOM char

                Google's robots.txt Parser is Now Open Source
              • GitHub - mgdm/htmlq: Like jq, but for HTML.

                $ htmlq -h htmlq 0.4.0 Michael Maclean <michael@mgdm.net> Runs CSS selectors on HTML USAGE: htmlq [FLAGS] [OPTIONS] [--] [selector]... FLAGS: -B, --detect-base Try to detect the base URL from the <base> tag in the document. If not found, default to the value of --base, if supplied -h, --help Prints help information -w, --ignore-whitespace When printing text nodes, ignore those that consist entirel

                  GitHub - mgdm/htmlq: Like jq, but for HTML.
                • gojqのパーサーを書き直しました - プログラムモグモグ

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

                    gojqのパーサーを書き直しました - プログラムモグモグ
                  • pingcap/parser (MySQL互換) で SQL を手軽に解析 - freee Developers Hub

                    この記事は freee Developers Advent Calendar 2021 の23日目の記事です🎄 freee の DBRE チームに所属している caterpillar です. なんだか大きなデータベースを眺める仕事をしています. 突然ですが, pingcap/parser を使って SQL を簡単に解析していきたいと思います. Go 製 の SQL Parser で, MySQL への高い互換性を謳う TiDB で利用されています. この parser の嬉しい点はこんな感じです. シンプルで使いやすい TiDB に利用されていることから, ある程度結果を信頼できる mask 済 SQL もおおよそ構文解析可能 3つ目について, mask済の SQL は select * from users where id = ? のように一部が別の文字に置き換わっているものを指しま

                      pingcap/parser (MySQL互換) で SQL を手軽に解析 - freee Developers Hub
                    • 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株式会社
                      • 最先端自然言語処理ライブラリの最適な選択と有用な利用方法 / pycon-jp-2020

                        PyCon JP 2020 での発表スライドです。 GitHub: https://github.com/taishi-i/toiro/tree/master/PyConJP2020

                          最先端自然言語処理ライブラリの最適な選択と有用な利用方法 / pycon-jp-2020
                        • プログラミング言語の習得に必要なもの - Qiita

                          はじめに 先日、エンジニアの能力と今どきの難しさというタイトルの記事(2018年)を読んで、「これはほんとにその通り」と思う一方で、具体例がないためにピンと来ない人や、マウント取りではという意見も多数見られた。というわけで、自分が比較的得意な、プログラミング言語の構文解析といった分野に関して、この記事の言わんとしていることを補足するような記事を書こうと思い至った。 記事中では、エンジニアに必要な知識や経験を、「ベース」「カテゴリ」「実行環境」という形(以下)に分けて論じている。 ①ベース コンピュータサイエンス(CS)などの理論的なもの 低レイヤー ②カテゴリ フロントエンド / バックエンド / クライアントアプリなど ③実行環境 特定のプログラミング言語や開発環境やツール、フレームワークやライブラリなど この中で、特に印象的であり、かつ「よくわかる」と思ったのは以下の記述だ。 ③は比較

                            プログラミング言語の習得に必要なもの - Qiita
                          • Ruby のメソッド定義時に仮引数があるとき、それをカッコでくくらないのは私だけなの? - STORES Product Blog

                            テクノロジー部門で Ruby インタプリタの開発をしている笹田です。RubyKaigi 2024 楽しみですね。 さて、Ruby のメソッドを定義するとき、仮引数がある場合、カッコを省略することができます。 def foo(x, y) end def bar x, y end bar の定義の方法ですね。私は好んでこの書き方をしてたんですが、同僚の遠藤さんに「そんな書き方をしているのは今時笹田だけだ」と言われてショックを受けたので、ちょっと調べてみました。 ちなみに、カッコがないと使えないメソッド定義の方法があるので、その時には涙を呑んでカッコをつけます。 def foo(kw:) # 必須キーワード引数 end def bar(&) # 無名ブロック引数 end 補足1:Ruby では「メソッド呼び出し時にカッコをつけるかどうか」にいろいろな論争がありますが、ここでは「メソッドを定義する

                              Ruby のメソッド定義時に仮引数があるとき、それをカッコでくくらないのは私だけなの? - STORES Product Blog
                            • Content EditableでWYSIWYGエディタ作るの楽しい! - maru source

                              こんにちは丸山@h13i32maruです。 僕は今、Ubie Discoveryで医療従事者向けのカルテエディタを作っています。人生で初めてContent Editableを使ってエディタを作ってるんですが、それがすごく楽しいです!というのも、エディタを作るには色々技術的な課題があります。例えば、テキストをパースするには?ASTからHTMLをビルドするには?パフォーマンスのよい更新方法は?などなど。それらの技術的な課題を解決していくのが単純に楽しいという感じです。また、車輪の再発明は極力抑えつつ、自分たちのプロダクトでやりたいことを実現できるような工夫もしています。 というわけで、今回はそんなエディタ作りで取り組んだ課題と解決策を紹介していきたいと思います。 (訳: 楽しかったので、誰かに聞いてもらいたい!) エディタの概要 メンテしやすいテキストパーサ - PEG.js メンテしやすいH

                                Content EditableでWYSIWYGエディタ作るの楽しい! - maru source
                              • [全部無料]最小限で理解しつつ作るELF parser入門 in Rust

                                誰も書いていなさそうだったので. Linux OSで標準採用されているexecutable formatのELFを理解するために, Rustでnom(parser combintor)を使いながらサクッとELF parserを実装します. かなり初歩的なことから話すので,前提知識はほぼ必要ないと思います. 有料にしている理由も特にないので, 最終の空ページのみ有料にしています.

                                  [全部無料]最小限で理解しつつ作るELF parser入門 in Rust
                                • JavaScriptの「カバー文法」とは何か - Qiita

                                  この表を上から読みつつ多少言葉で説明すると以下のようになります。 const foo = bar + 3;はStatementListItemである。なぜなら、DeclarationはStatementListItemの一種であると定義されているから。 const foo = bar + 3;はDeclarationである。なぜなら、LexicalDeclarationはDeclarationの一種であると定義されているから。 const foo = bar + 3;はLexicalDeclarationである。なぜなら、LetOrConst, BindingList, ;が並んだものはLexicalDeclarationであると定義されているから。 constはLetOrConstであると定義されている。 foo = bar + 3 はBindingListである。LexicalBind

                                    JavaScriptの「カバー文法」とは何か - Qiita
                                  • JSONパーサにファジングしたら収拾がつかなくなりました

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

                                      JSONパーサにファジングしたら収拾がつかなくなりました
                                    • GitHub - kellyjonbrazil/jc: CLI tool and python library that converts the output of popular command-line tools, file-types, and common strings to JSON, YAML, or Dictionaries. This allows piping of output to tools like jq and simplifying automation scripts

                                      You signed in with another tab or window. Reload to refresh your session. You signed out in another tab or window. Reload to refresh your session. You switched accounts on another tab or window. Reload to refresh your session. Dismiss alert

                                        GitHub - kellyjonbrazil/jc: CLI tool and python library that converts the output of popular command-line tools, file-types, and common strings to JSON, YAML, or Dictionaries. This allows piping of output to tools like jq and simplifying automation scripts
                                      • GitHub - github/semantic: Parsing, analyzing, and comparing source code across many languages

                                        You signed in with another tab or window. Reload to refresh your session. You signed out in another tab or window. Reload to refresh your session. You switched accounts on another tab or window. Reload to refresh your session.

                                          GitHub - github/semantic: Parsing, analyzing, and comparing source code across many languages
                                        • GitHub - google/robotstxt: The repository contains Google's robots.txt parser and matcher as a C++ library (compliant to C++11).

                                          You signed in with another tab or window. Reload to refresh your session. You signed out in another tab or window. Reload to refresh your session. You switched accounts on another tab or window. Reload to refresh your session.

                                            GitHub - google/robotstxt: The repository contains Google's robots.txt parser and matcher as a C++ library (compliant to C++11).
                                          • TypeScript 4.1による型レベルパーサコンビネーター

                                            はじめに これはTypeScript Advent Calendarの11日目の記事です。 TS 4.1で導入されたTemplate literal typesが世間で話題ですね。 TypeScriptのTemplate string typesで湧き上がる界隈の様子 - Togetter Template String Types でパス文字列を解析してクエリする - Object.create(null) (ネタ) TypeScript 型パズルで作るmini interpreter by Yosuke Kurami TypeScriptにヤバい機能が入りそうなのでひとしきり遊んでみる - TechRacho Template titeral types で型上の簡易 Lisp パーサー - La Verda Luno Template Literal Types の基礎と .join

                                              TypeScript 4.1による型レベルパーサコンビネーター
                                            • Ruby Parser開発日誌 (14) - LR parser完全に理解した - かねこにっき

                                              こんにちはかねこです。私はCRuby(ruby/ruby)のコミッタをやっているのですが、最近はCRubyをメインのターゲットとしてLALR parser generator Lramaの開発をしています。 現役のLALR parser generator開発者として、日頃私以上にLR parserのことを考えている人はそうはいないでしょう。 この記事を読んでいる皆さんは構文解析、なかでも特にLR parserを理解するためにいろいろな教科書や記事を読んできたと思います。 一方でどんなに調べてもどこか腑に落ちない部分が残っているのではないでしょうか。 LR構文解析を勉強すると構文解析表に出会うとおもいます。 構文解析表を作る方法そのものは教科書に説明が載っており、その通りに手を動かせばこのような表を作ることはできるでしょう。 また出来上がった構文解析表をもとに実際に構文解析する手順も理解で

                                                Ruby Parser開発日誌 (14) - LR parser完全に理解した - かねこにっき
                                              • 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
                                                • JSON Parser with JavaScript | Tan Li Hau

                                                  Series: AST JavaScriptAST Understand the grammar Implementing the parser Handling the unexpected input Unexpected token Unexpected end of string Going the extra mile Error code and standard error message A better view of what went wrong Suggestions for error recovery Summary The interview question of the week for this week on Cassidoo's weekly newsletter is, Write a function that takes in a string

                                                    JSON Parser with JavaScript | Tan Li Hau
                                                  • Ruby Parser開発日誌 (1) - かねこにっき

                                                    Error Tolerant parserに関するアイデア 9月半ばに行われたRubyKaigi 2022以来、3ヶ月くらいError Tolerant parserについて調べたり考えたり実装をしたりしています。 途中でもいいからなにかにアウトプットしておくとよいというアドバイスをもらったので、今現在の状況や考えていることを書いておこうと思います。 Error Tolerant parserとは? どうしてそれが欲しいの? 通常parserはユーザーの入力を受け取り その入力がそのプログラミング言語にとって、validなものか否かをチェック validな場合、その後の工程にとって都合のいいデータ構造(例えばAST)に変換し、後工程に渡す invalidな場合、Syntax Errorをレポートする といった処理を行います。 しかしIDEやLSP(Language Server Proto

                                                      Ruby Parser開発日誌 (1) - かねこにっき
                                                    • RubyKaigi 2023 参加報告とちょっとエモい話 - joker1007’s diary

                                                      RubyKaigi 2023に参加してきました。 今回は長野県の松本での開催でした。 全体的な感想 今回は、会場のスポンサーブースの数や来場者が去年より格段に多く、かつてのRubyKaigiが戻ってきたことを強く感じました。 4, 5年ぶりぐらいに会う人も沢山居て、会う人会う人に「うおー、久しぶりです!」って言って回ってた気がします。 久しぶりに会う人と直接近況をやり取りできるのは、とても嬉しいことですね。 自分はあんまり写真撮らないタイプなのですが(食べ物と酒は除く)、今回は割と多くの #rubyfriends 写真を撮った気がする。 それぐらいはしゃいでいたと言えるのかもしれない。 (撮った写真を了解無く上げるのは、ちょっと気になったので写真は割愛) とにかく、色々な人にまた会えたのが嬉しかった。そういうRubyKaigiでした。 セッションについて 今回は、パーサー周りのトークが妙に

                                                        RubyKaigi 2023 参加報告とちょっとエモい話 - joker1007’s diary
                                                      • Rustでインタプリタ

                                                        Lexerを作る Lexerとは Lexerとは、入力されたソースコードから構文を読み取り、意味のある形式に変換するための機能。 例えば、

                                                          Rustでインタプリタ
                                                        • ChatGPT時代に必要かも!? Pythonで実行するファイルパース(PDF編) | DevelopersIO

                                                          こんちには。 データアナリティクス事業本部 インテグレーション部 機械学習チームの中村です。 今回は話題のChatGPTにコンテキストを与える際に必要となるファイルパース処理について見ていきたいと思います。 本記事ではPDFに焦点を絞ってみていきます。既存のライブラリ内の実装も確認していきます。 先行事例の実装 先行事例の実装として、よく話題となる以下のライブラリを見ていきます。 (LlamaIndexとLlamaHubはほぼ同じですが、parserとしては片方にしかないものもあるため) LlamaIndex https://github.com/jerryjliu/llama_index https://gpt-index.readthedocs.io/en/latest/index.html LlamaHub https://github.com/emptycrown/llama-hu

                                                            ChatGPT時代に必要かも!? Pythonで実行するファイルパース(PDF編) | DevelopersIO
                                                          • Lessons from Writing a Compiler

                                                            The prototypical compilers textbook is: 600 pages on parsing theory. Three pages of type-checking a first-order type system like C. Zero pages on storing and checking the correctness of declarations (the “symbol table”). Zero pages on the compilation model, and efficiently implementing separate compilation. 450 pages on optimization and code generation. The standard academic literature is most use

                                                            • Rust製のパーサコンビネータnomを解剖する(v6.0.0) - DrumatoのBlog

                                                              こちらに移行しました. www.drumato.com

                                                                Rust製のパーサコンビネータnomを解剖する(v6.0.0) - DrumatoのBlog
                                                              • Rustでマークダウンパーサーを自作して、WASM+Nuxt3+Viteで動かしてみた

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

                                                                  Rustでマークダウンパーサーを自作して、WASM+Nuxt3+Viteで動かしてみた
                                                                • parser gemでRubyプログラムのバグを探す - NaCl Blog

                                                                  出力がちょっと独特ですが、レシーバなし(nil)のputsメソッド呼び出し(send)で、引数は文字列リテラル(str)が一つ、という風に読みます。 CurrentRubyというのは今実行しているバージョンのRuby、ということです。parser gemは過去のRubyの文法に合わせてパースすることもできるのでこのような名前になっています。 parser gemでバグを探す それでは、parserを使って条件式の中の代入式を探してみましょう。大きなコードに対して解析を行う場合、AST::Processor::Mixinを使うのが便利です。これはparser gemの内部で使われている小さなライブラリast gemの機能です。parserの処理のうち、Ruby以外の言語の解析にも使える部分が独立したgemとして用意されているようです。 最初にコード全体を貼っておきます。 require 'p

                                                                  • GitHub - curl/trurl: trurl is a command line tool for URL parsing and manipulation.

                                                                    You signed in with another tab or window. Reload to refresh your session. You signed out in another tab or window. Reload to refresh your session. You switched accounts on another tab or window. Reload to refresh your session. Dismiss alert

                                                                      GitHub - curl/trurl: trurl is a command line tool for URL parsing and manipulation.
                                                                    • Parsing Javascript

                                                                      The document provides an in-depth look at the process of parsing in Javascript. It explains parsing as the transformation of a programming language described in strings into a structured state. Key topics include the flow of parsing (reading source code, converting Unicode sequences and escapes, tokenization, etc.), dealing with Javascript escapes, lexical analysis, syntax analysis using Backus-Na

                                                                        Parsing Javascript
                                                                      • GitHub - g-plane/typed-query-selector: Better typed `querySelector` and `querySelectorAll`.

                                                                        You signed in with another tab or window. Reload to refresh your session. You signed out in another tab or window. Reload to refresh your session. You switched accounts on another tab or window. Reload to refresh your session. Dismiss alert

                                                                          GitHub - g-plane/typed-query-selector: Better typed `querySelector` and `querySelectorAll`.
                                                                        • 経理からプログラマへ、Lramaの今後、なぜBisonを倒したのか。深掘りRubyKaigi 2023 with spikeolaf & makenowjust 文字起こしレポート vol.2 - STORES Product Blog

                                                                          2023年6月15日に『深掘りRubyKaigi 2023 with spikeolaf & makenowjust』を開催しました。イベントの内容をほぼ全文文字起こし形式でお届けします。この記事は第2部です。 hey.connpass.com 登場人物 ゲスト makenowjust/藤浪 大弥さん spikeolaf/金子 雄一郎さん STORES fujimura/藤村 大介 shyouhei/卜部 昌平 hogelog/小室 直 パーサとの出会い fujimura:金子さんのパートにいきます。簡単にどんな話をRubyKaigi 2023でしたか紹介していただけますでしょうか? spikeolaf:ここ2年ぐらい、主にAnd the WorldっていうRubyKaigiの名物コンテンツを見ていると、パーサへの関心というのは高まってきていて、ここ何年かで何が問題かはだいぶ整理されてきて

                                                                            経理からプログラマへ、Lramaの今後、なぜBisonを倒したのか。深掘りRubyKaigi 2023 with spikeolaf & makenowjust 文字起こしレポート vol.2 - STORES Product Blog
                                                                          • Rewriting the Ruby parser

                                                                            At Shopify, we have spent the last year writing a new Ruby parser, which we’ve called YARP (Yet Another Ruby Parser). As of the date of this post, YARP can parse a semantically equivalent syntax tree to Ruby 3.3 on every Ruby file in Shopify’s main codebase, GitHub’s main codebase, CRuby, and the 100 most popular gems downloaded from rubygems.org. We recently got approval to merge this work into C

                                                                              Rewriting the Ruby parser
                                                                            • Ruby Parser開発日誌 (6) - parse.yのMaintainabilityの話 - かねこにっき

                                                                              前回のあらすじ Ruby Parser開発日誌 (5) - Lrama LALR (1) parser generatorを実装した - かねこにっき Error Recoveryを実装するためにLrama LALR (1) parser generatorを実装しました。 Error Recoveryについては目処がたったので今回はparse.yのMaintainabilityをいかにして改善するか考えたいと思います。 parse.yの難しさ Rubyのparse.yの難しさについては聞く人によって異なる回答が返ってくるところですが、おおよそ以下のようにまとめることができると思います。 ファイルの行数が多い shift/reduce conflictやreduce/reduce conflict時に何が起きているか分かりにくい Bisonが原始的な記法しか提供していないので全ての規則を書

                                                                                Ruby Parser開発日誌 (6) - parse.yのMaintainabilityの話 - かねこにっき
                                                                              • TypeScriptパーサーのベンチマーク:Rustツールの性能の謎を解く

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

                                                                                  TypeScriptパーサーのベンチマーク:Rustツールの性能の謎を解く
                                                                                • おうち電力の Observability: parser combinator をガリガリ書いてスマートメーターとおしゃべりする - NTT Communications Engineers' Blog

                                                                                  この記事は、 NTT Communications Advent Calendar 2023 6日目の記事です。 こんにちは。 SDPF クラウド・仮想サーバーチームの杉浦 (@Kumassy_) です。 普段は OpenStack の開発・運用をしており、最近は Observability まわりを取り組んでいます。 この記事では、以前私が Tech-Night という社内 LT 会で発表した以下のプロジェクトのご紹介します。 Tech-Night については以下の記事をご覧ください。 きっかけ 今年は不安定な世界情勢と円安、猛暑により電気代を気にする機会が多かったのではないでしょうか。 私もあるとき 7-9 月の電気代を確認したところ、電力使用量が 330 kWh、電気代が 10,000 円を超えていました。これは私のチームの 4 人家族のご家庭と比べても多い値でした。 なぜ私の家では

                                                                                    おうち電力の Observability: parser combinator をガリガリ書いてスマートメーターとおしゃべりする - NTT Communications Engineers' Blog

                                                                                  新着記事