GithubHelp home page GithubHelp logo

more testing for PEG about janet HOT 10 CLOSED

janet-lang avatar janet-lang commented on August 23, 2024 1
more testing for PEG

from janet.

Comments (10)

bakpakin avatar bakpakin commented on August 23, 2024 1

General Documentation now at https://janet-lang.org/introduction.html

I have moved the documentation into the janet-lang.org repository so that documentation could go on the website. Also, the Introduction has been broken up into multiple pages for better organization.

Peg docs at https://janet-lang.org/peg.html

from janet.

bakpakin avatar bakpakin commented on August 23, 2024 1

Should look better now. For further issues and fixes with the website, post them in the website repo.

from janet.

bakpakin avatar bakpakin commented on August 23, 2024

PEGs now are compiled to a bytecode format that is faster. Pegs can also be pre-compiled and get better error messages now. I have been adding more tests to the test suite for testing captures and other features.

Use (peg/compile peg) to compile a Janet data structure to a peg.

NOTE: Some docs coming on PEGs, but since I'm still fiddling with the interface things aren't finalized yet.

from janet.

honix avatar honix commented on August 23, 2024

This is computer science for me, but, can PEG replace parse.c in the future?

from janet.

bakpakin avatar bakpakin commented on August 23, 2024

With a few changes, it probably could, but I probably won't. Janet's grammar is certainly simple enough to be easily recognized by a PEG.

  • parse.c already works
  • parse.c can be suspended and started later (need for efficient repl)
  • parse.c has good error reporting
  • parse.c will be faster (it's pure C)
  • parse.c enables manipulating and querying parser state externally, needed for for repl and error reporting/recovery ((parser/has-more), (parser/state), (parser/where))

The PEG is more for things like interfacing with external small languages, syntax highlighting, and replacing a regex engine or pattern matching library. I put peg in Janet because I wanted some pattern matching facilities and was inspired by Red/REBOL parse.

from janet.

honix avatar honix commented on August 23, 2024

I see. Red/REBOL parse is really cool indeed!

from janet.

bakpakin avatar bakpakin commented on August 23, 2024

Initial PEG doc at https://github.com/janet-lang/janet/blob/master/doc/Peg.md. Interface should be stabalizing soon!

from janet.

honix avatar honix commented on August 23, 2024

Now on mobiles overall site looks squeezed. :(

from janet.

bakpakin avatar bakpakin commented on August 23, 2024

Ugh, you’re right. I was doing a lot of refactoring on the website, I will fix mobile soon.

from janet.

bakpakin avatar bakpakin commented on August 23, 2024

I'm closing this - any issues with the PEG should go in a new issue.

from janet.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.