並び順

ブックマーク数

期間指定

  • から
  • まで

121 - 160 件 / 183件

新着順 人気順

parserの検索結果121 - 160 件 / 183件

  • RubyKaigi 2024 の Lightning Talks に弊社 S.H. が登壇します - ESM アジャイル事業部 開発者ブログ

    RubyKaigi 2024 の2日目に開催される Lightning Talks に弊社 S.H. が登壇します。 rubykaigi.org ここでは、登壇者の S.H. からトークの内容について軽く紹介をします。 Contributing to the Ruby Parser (S.H.) 構文解析研究部のS.H.です。『Contributing to the Ruby Parser』というタイトルでLTをします。 タイトルからわかるようにRubyのパーサーへのコントリビューションについての話です。 内容としては、私がどのようにしてparse.yへのコントリビューションをはじめたのかに始まり、parse.yからリテラルオブジェクトの生成をなくしていく対応やUniversal ParserのC APIの依存削減などを話します。 私はいかにして心配することを止め、Rubyパーサーにコント

      RubyKaigi 2024 の Lightning Talks に弊社 S.H. が登壇します - ESM アジャイル事業部 開発者ブログ
    • GitHub - stevenmiller888/ts-mysql-parser: A standalone, grammar-complete MySQL parser.

      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 - stevenmiller888/ts-mysql-parser: A standalone, grammar-complete MySQL parser.
      • Tiark's Notebook

        Tiark Rompf is an Associate Professor at Purdue University. Notes and blog posts on programming, research, CS, software systems.

        • GitHub - escaya/escaya: An blazing fast 100% spec compliant, incremental javascript parser written in Typescript

          Note! As of now the author ran out of time. If anyone wants to help out "fixing" a small part of my private code, so it can be ported to Escaya. This parser can be completed. Just ping me in the 'TODO's issue on this repo if interested. Escaya An blazing fast 100% spec compliant, incremental javascript parser written in Typescript Work in progress Features Conforms to the standard ECMAScript® 2021

            GitHub - escaya/escaya: An blazing fast 100% spec compliant, incremental javascript parser written in Typescript
          • GitHub - EricSmekens/jsep: JavaScript Expression Parser

            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 - EricSmekens/jsep: JavaScript Expression Parser
            • GitHub - we-like-parsers/pegen: PEG parser generator for Python

              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 - we-like-parsers/pegen: PEG parser generator for Python
              • GitHub - frsyuki/trino_sql_parser: Parse a SQL using Presto's native SQL parser and reports syntax errors

                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 - frsyuki/trino_sql_parser: Parse a SQL using Presto's native SQL parser and reports syntax errors
                • PHP 8 で作る JSON パーサ / php8-json-parser

                  2020/12/12 phpcon2020 sample code: https://github.com/shin1x1/php8-toy-json-parser

                    PHP 8 で作る JSON パーサ / php8-json-parser
                  • GitHub - xiam/s-expr: S-expressions parser

                    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 - xiam/s-expr: S-expressions parser
                    • Top Down Operator Precedence

                      Douglas Crockford 2007-02-21 This is chapter 9 of Beautiful Code. Introduction Vaughan Pratt presented "Top Down Operator Precedence" at the first annual Principles of Programming Languages Symposium in Boston in 1973. In the paper Pratt described a parsing technique that combines the best properties of Recursive Descent and Floyd's Operator Precedence. It is easy to use. It feels a lot like Recur

                      • Parsing and all that

                        Hello again! I’m picking up my series on Automata, with this post that goes into what I had always meant to get to: parsers. We’ll check out the old-school linear time parsing algorithms, which only need to go over the input once, without backtracking or caching. We’ll check out LL and LR, parse tables, recursive descent and recursive ascent. Welcome to the world of deterministic parsing… Refreshe

                        • Parsletでかんたんな自作言語のパーサを書いた - Qiita

                          <自作言語処理系の説明用テンプレ> 自分がコンパイラ実装に入門するために作った素朴なトイ言語とその処理系です。簡単に概要を書くと下記のような感じ。 リポジトリ: github.com/sonota88/vm2gol-v2 小規模: コンパイラ部分は 1,000 行程度 pure Ruby / 標準ライブラリ以外への依存なし 独自VM向けにコンパイルする ライフゲームのために必要な機能だけ 変数宣言、代入、反復、条件分岐、関数呼び出し 演算子: +, *, ==, != のみ(優先順位なし) 型なし(値は整数のみ) 作ったときに書いた備忘記事 RubyでオレオレVMとアセンブラとコード生成器を2週間で作ってライフゲームを動かした話 Rubyでかんたんな自作言語のコンパイラを作った Ruby 以外の言語への移植(コンパイラ部分のみ) セルフホスト版(別リポジトリ) <説明用テンプレおわり> も

                            Parsletでかんたんな自作言語のパーサを書いた - Qiita
                          • Solving Advent of Code ’23 “Aplenty” by Compiling

                            April 7, 2024 A eighteen minute read 13 comments 2 🗣️ 11 ❤️ 7 🔁 Tags: programmingparsinginterpreterscompilershaskell Every year I try to solve some problems from the Advent of Code (AoC) competition in a not straightforward way. Let’s solve the part one of the day 19 problem Aplenty by compiling the problem input to an executable file. Every year I try to solve some problems from the Advent of C

                              Solving Advent of Code ’23 “Aplenty” by Compiling
                            • On Modularity of Lexical Analysis

                              On Modularity of Lexical Analysis Aug 1, 2023 I was going to write a long post about designing an IDE-friendly language. I wrote an intro and figured that it would make a better, shorter post on its own. Enjoy! The big idea of language server construction is that language servers are not magic — capabilities and performance of tooling are constrained by the syntax and semantics of the underlying l

                              • Finn Bender / haskell-parsing-benchmarks · GitLab

                                GitLab.com

                                  Finn Bender / haskell-parsing-benchmarks · GitLab
                                • GitHub - aappleby/matcheroni: A minimalist single-header library for building pattern-matchers, lexers, and parsers.

                                  Matcheroni is a minimalist, zero-dependency, single-header C++20 library for doing pattern matching using Parsing Expression Grammars (PEGs). PEGs are similar to regular expressions, but both more and less powerful. Parseroni is a companion single-header library that can capture the content of Matcheroni patterns and assemble them into concrete parse trees. Together, Matcheroni and Parseroni gener

                                    GitHub - aappleby/matcheroni: A minimalist single-header library for building pattern-matchers, lexers, and parsers.
                                  • GitHub - kellyjonbrazil/jello: CLI tool to filter JSON and JSON Lines data with Python syntax. (Similar to jq)

                                    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/jello: CLI tool to filter JSON and JSON Lines data with Python syntax. (Similar to jq)
                                    • GitHub - lezer-parser/lezer: Dev utils and issues for the Lezer core packages

                                      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 - lezer-parser/lezer: Dev utils and issues for the Lezer core packages
                                      • Jello: The JQ Alternative for Pythonistas - Brazil's Blog

                                        Brazil's Blog Musings on automation, scripting, programing, DevOps, and cybersecurity Built on jello: – Jello Explorer (jellex): TUI interactive JSON filter using Python syntax – jello web demo I’m a big fan of using structured data at the command line. So much so that I’ve written a couple of utilities to promote JSON in the CLI: jc to JSONify command line output of scores of commands and file-ty

                                          Jello: The JQ Alternative for Pythonistas - Brazil's Blog
                                        • EverParse: Hardening critical attack surfaces with formally proven message parsers - Microsoft Research

                                          Software security exploits often begin with an attacker providing an unexpected input to a program, confusing the program and causing it to misbehave in a way that allows the attacker to gain access to a critical system, leading to crashes and service disruption, information disclosure, or even granting the attacker full control of the system. Most programs are designed to validate their inputs be

                                            EverParse: Hardening critical attack surfaces with formally proven message parsers - Microsoft Research
                                          • GitHub - goccy/go-zetasql: Go bindings for ZetaSQL

                                            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 - goccy/go-zetasql: Go bindings for ZetaSQL
                                            • 簡単な演算子順位法によるパーサー

                                               簡単な演算子順位法によるパーサー in Ruby (Simple Operator Precedence Parser in Ruby) 目次 趣旨 方針 簡単な説明 注意事項 プログラムリスト 実行例 変更履歴 参考文献 趣旨 計算機科学の分野の人は,様々な計算機理論を勉強するのに,やっぱり, 学習していることを実際に動かしてみたいという 衝動に駆られることが多いと思います.一般的に理論は抽象的で,根を詰めてやると, 飽きる,辛い,楽しくないという状況に陥ります.例えば圏論でプログラムの意味を付ける理論は 読んでいるとその極度の抽象性から逃避したくなるし,計算機に関係の深い言語理論 やラムダ計算だって本を読んでいるだけでは分かったような分からないような, しまいにどうでもよくなってきます. そんなとき,学習している理論をちょっと実装してみて動かしてみると, 気分が変わるし,学習対象の

                                              • GitHub - caradoc-org/caradoc: A PDF parser and validator

                                                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 - caradoc-org/caradoc: A PDF parser and validator
                                                • Binary Packet Parsing — Monday Morning Haskell

                                                  Today we're back with a new problem walkthrough, this time from Day 16 of last year's Advent of Code. In some sense, the parsing section for this problem is very easy - there's not much data to read from the file. In another sense, it's actually rather hard! This problem is about parsing a binary format, similar in some sense to how network packets work. It's a good exercise in handling a few diff

                                                  • Laurence Tratt: Why We Need to Know LR and Recursive Descent Parsing Techniques

                                                    A couple of people have asked me for my thoughts on part of an article from Tiark Rompf called (roughly) "Just Write the Parser" which advocates the use of recursive descent parsing over more "formal" approaches to parsing, at least in the context of teaching compilers. I'm fairly sure I read this article a couple of years ago, but it may have been updated, or simply have been discovered anew. Eit

                                                    • RubyKaigi2024に参加してきました⛱️

                                                      2024年5月15〜17の3日間、沖縄県那覇市で開催されたRubyKaigi2024に参加してきました! 今年も楽しかったですね・・・! だいぶ間が空いてしまいましたが、聴講したトークや思ったことなど書いてみました。 トーク感想 Day1 The grand strategy of Ruby Parser by Yuichiro Kaneko 発表資料 Ruby3.3で導入されたパーサージェネレータであるLramaについて、どんなものなのか、それがなぜ選ばれたのか、そして現在のRubyのパーサ周りの開発がどのような状況かといった内容でした。 まずここでいうパーサとは、Rubyのコードを解釈してASTとして出力するためのものです。 出力されたASTは、主にLSPのような開発支援の外部ツール等で使われます。 Ruby3.3では、それまでのBisonに代わってLramaというRubyで書かれた新

                                                        RubyKaigi2024に参加してきました⛱️
                                                      • Quick and Dirty Guide to Monadic Parsers and Angstrom

                                                        Edit Quick and Dirty Guide to Monadic Parsers and Angstrom Author: Metin Akat @loxs Review: Ivan Gotovchits @ivg Abstract This tutorial aims to give you abilities to write parsers quickly for your daily tasks. It’s not a formal or academic explanation of parsers, grammars, monads etc. On the contrary, it aims to be as informal as possible and to have as little requirements for previous knowledge a

                                                        • An annotated example of using LPeg to parse a string to generate LPeg to parse other strings - The Boston Diaries - Captain Napalm

                                                          Wednesday, Debtember 14, 2022 An annotated example of using LPeg to parse a string to generate LPeg to parse other strings A message on the Lua email list was asking about the best way to parse MQTT topics, specifically, how to handle the multilevel wildcard character. I answered that LPeg would be good for this, and gave annotated source code to show how it works. I thought I might also post abou

                                                          • How to crash an email server with a single email | Snyk

                                                            Five of the most popular email parsers for Node.js have recently been found to be susceptible to a trivial denial of service (DoS) vulnerability. The vulnerability can be exploited by packing a few million empty attachments in a email that will bypass typical email size limits (usually 20 MB or less). When the email is sent to a vulnerable email server, it will freeze the Node.js event loop for se

                                                              How to crash an email server with a single email | Snyk
                                                            • パーサー・コンビネーター・ライブラリ「takenoco」入門

                                                              本ドキュメントでは、Go言語向けのパーサー・コンビネーター・ライブラリ「takenoco」について解説します。 パーサー・コンビネーターとは、小さなパーサー(構文解析器)の関数を組み合わせて目的のパーサーを構築する、パーサーの構成方法です。 プログラミング言語の「高階関数」という仕組みによって比較的容易に実現することができます。 takenoco は、文字列、または、任意の型のスライスをパースし、AST (abstract syntax tree; 抽象構文木) に変換するための基盤と、汎用的な小さなパーサー群、生成規則によるASTの変換機能を提供します。 takenoco のパッケージ takenoco は以下のパッケージによって構成されます。 base/: 型、パーサー基盤および、文字列/任意の型のスライス 共通の汎用的なパーサー群を提供します。 string/: 文字列の汎用的なパー

                                                                パーサー・コンビネーター・ライブラリ「takenoco」入門
                                                              • Morbig: A Static parser for POSIX shell

                                                                The POSIX shell language defies conventional wisdom of compiler construction on several levels: The shell language was not designed for static parsing, but with an intertwining of syntactic analysis and execution by expansion in mind. Token recognition cannot be specified by regular expressions and lexical analysis depends on the parsing context and the evaluation context. Besides, the unorthodox

                                                                  Morbig: A Static parser for POSIX shell
                                                                • Raccでかんたんな自作言語のパーサを書いた - Qiita

                                                                  <自作言語処理系の説明用テンプレ> 自分がコンパイラ実装に入門するために作った素朴なトイ言語とその処理系です。簡単に概要を書くと下記のような感じ。 小規模: コンパイラ部分は 1,000 行程度 pure Ruby / 標準ライブラリ以外への依存なし 独自VM向けにコンパイルする ライフゲームのために必要な機能だけ 変数宣言、代入、反復、条件分岐、関数呼び出し 演算子: +, *, ==, != のみ(優先順位なし) 型なし(値は整数のみ) Ruby 以外の言語への移植(コンパイラ部分のみ) セルフホスト版(別リポジトリ) 下記も参照してください。 <説明用テンプレおわり> もともとパーサ部分は手書きの再帰下降パーサでしたが、Racc 版を作ってみました。 Racc で四則演算のパーサを作る方法は分かったがもう少しプログラム言語らしきものを扱っているサンプルを見たいとか、パースしたそばから

                                                                    Raccでかんたんな自作言語のパーサを書いた - Qiita
                                                                  • Interactive Parser Explanations

                                                                    I have been building this framework for explaining, analyzing, and teaching about LR(1) grammars for a couple months now. I hope to turn it into a series of interactive blog posts to explain what parsing is and some approaches we can take to it, most notably LR(1) parsing. Many notable parser generators like Haskellʼs Happy and the mainstream Yacc, Bison, and Tree-sitter use variants of LR(1), mod

                                                                    • GitHub - jhjourdan/C11parser: A correct C89/C90/C99/C11/C18 parser written using Menhir and OCaml

                                                                      You need to have installed OCaml (known to work with 4.05.0), the Menhir parser generator (known to work with 20181113) and ocamlbuild (known to work with 0.12.0) In order to build it, you can just type make. The executable that is produced takes a preprocessed C file in its standard input and raises an exception in the case of a parse error. The following command-line options are available: -std

                                                                        GitHub - jhjourdan/C11parser: A correct C89/C90/C99/C11/C18 parser written using Menhir and OCaml
                                                                      • Demystifying Pratt Parsers

                                                                        and spit out the correctly parenthesized/nested expression (1 + (2 * 3)). So nice! But how do they work? Bob Nystrom’s article The original paper “Top Down Operator Precedence” (PDF or this beautiful HTML rendering) by Vaughan Pratt has a lot of theory, theorems and proofs, is somewhat philosophical at times, and spends quite some time dealing with problems of its time (1973). Of course, as an aca

                                                                        • GitHub - goccmack/gogll: Generates generalised LL (GLL) and reduced size LR(1) parsers with matching lexers

                                                                          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 - goccmack/gogll: Generates generalised LL (GLL) and reduced size LR(1) parsers with matching lexers
                                                                          • Darkdown

                                                                            OCaml で実装する演算子の定義ができる組み込みの Result 型があるparser の失敗を検知する必要がある引数の適用がやりやすい俺は Haskell が書けない Parser の定義type input = { text : string; pos : int } type parser_t = input -> input * ('a, string) result; 入力 を受け取り、消費しなかった入力と、パース結果を返す。 消費しなかった入力を返すのは、後続の parser に渡すため。 例: 最小限のパーサー 文字列の先頭一文字をパースする。 let get_char = function | [] -> None | c::cs -> Some (c, cs) FYI: https://zehnpaard.hatenablog.com/entry/2019/07/05/

                                                                            • Minipeg - Parser generator for C

                                                                              Minipeg is a parser generator for C that you can easily add to your project as a single file. Single file distribution minipeg.c Example calculator Example x86_64 assembler Source code Man Page MINIPEG(1) General Commands Manual MINIPEG(1) NAME minipeg - parser generator SYNOPSIS minipeg [-hvVP -ooutput] [filename ...] DESCRIPTION minipeg is a tool for generating recursive-descent parsers: program

                                                                              • re2c の使い方

                                                                                レキサー生成ツール「re2c」の使い方を解説する本。

                                                                                  re2c の使い方
                                                                                • GitHub - mozilla/moz-sql-parser: DEPRECATED - Let's make a SQL parser so we can provide a familiar interface to non-sql datastores!

                                                                                  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 - mozilla/moz-sql-parser: DEPRECATED - Let's make a SQL parser so we can provide a familiar interface to non-sql datastores!