Git Product home page Git Product logo

eldiro's People

Contributors

lunacookies avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

eldiro's Issues

part 19 missing use statement

This issue refers to the usage of PhantomData in part 19

The code works, however to use PhantomData you need to use std::marker::PhantomData first.

not a major issue though. I'm sure most people can figure it out

Question: Desired Idents

Hey!

First of all, thanks for the great read, and the wealth of information provided by your tutorial!

Okay, onto the "issue"!

TokenKind::Ident currently uses the regex [A-Za-z][A-Za-z0-9]* to get all idents. However, this misses the all imporant _ character. I am not sure if it is desired that idents cannot have an underscore or not, as it was not discussed from what I can tell.

If idents should be able to have _, then the regex just should be either [A-Za-z][A-Za-z0-9_]* or [A-Za-z][A-Za-z0-9]*, depending of if you would like _ to be a valid ident or not.

What currently happens when an ident has an _:

 > let long_name = 2
[email protected]
  [email protected]
    [email protected] "let"
    [email protected] " "
    [email protected] "long"
    [email protected]
      [email protected] "_"
    [email protected]
      [email protected] "name"
      [email protected] " "
  [email protected]
    [email protected] "="
    [email protected] " "
  [email protected]
    [email protected] "2"
    [email protected] "\n"

lower(root) = (
    Database {
        exprs: Arena {
            len: 0,
            data: [],
        },
    },
    [
        VariableDef(
            "long",
            VariableRef(
                "name",
            ),
        ),
        Expr(
            Literal(
                Some(
                    2,
                ),
            ),
        ),
    ],
)

With the first suggested change:

 -> let long_name = 1
[email protected]
  [email protected]
    [email protected] "let"
    [email protected] " "
    [email protected] "long_name"
    [email protected] " "
    [email protected] "="
    [email protected] " "
    [email protected]
      [email protected] "1"
      [email protected] "\n"

lower(root) = (
    Database {
        exprs: Arena {
            len: 0,
            data: [],
        },
    },
    [
        VariableDef(
            "long_name",
            Literal(
                Some(
                    1,
                ),
            ),
        ),
    ],
)


Part Three typo

remove mod util; from expr.rs, and put the following in lib.rs:

Should be

remove mod utils; from expr.rs, and put the following in lib.rs:

i.e. mod util -> mod utils

Thanks for the series!

Adding git tags for when each blog post is released

Hi,

First I'd like to say thanks for taking the time to make this blog series.

I'd like to see the code at the time of writing a specific post, but that requires me to search through the repo's history and make a guess as to which commit corresponds with when that blog post was posted. Would it be possible to use git tags to tag the commit of the repo when you post a new blog post? That way, myself and others could just checkout the repo at that tag to browse the code.

Lexing comments

Hi,
nice project and tutorial series!

I have a question regarding your 14th part of the tutorial: Is there any future benefit to have an explicit comment token? Without doc comments etc. in mind it would be easier to filter comments with a simple logos::skip like:

pub(crate) enum SyntaxKind {
// snip

    #[error]
    #[regex("#.*"), logos::skip)] // added here because Error is some kind of fallback token
    Error,

// snip
}

Less code, easier to understand, possibly faster and a simpler parser tree. The only drawback is that it is not possible to parse the content of comments in the future.

hello..!

I enjoyed your article very much...!
It was vague to create a language to me, but I was inspired by your article.
There seems to be no update after the post has been serialized several times within a short period of time.
I don't want to put pressure on you, but I would appreciate it if you notice there are readers waiting.

Thank you again for your work.

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.