Giter Club home page Giter Club logo

Comments (1)

Condordito avatar Condordito commented on June 14, 2024

I believe the Tokenizer API proposed in #2762 should not just split on whitespaces and around quotes, but also collect more information for a particular instruction. Similar to what #2749 did, preprocess optional arguments. The issue with that PR was that without a set of requirements, it would take any key-value argument as valid. (Ex. minecraft=diamond)

Invalid instruction item minecraft:diamond
Valid instruction item 'minecraft:diamond'

To handle this and reduce the repeated use of key-value string patterns or their raw instruction, I propose passing those requirements to the parser during initialization. Another API would be used to predefine its structure.

The requirements could include

  • # of required arguments, or unlimited (for notify and variable events)
  • valid keys for optional arguments
  • set of predefined flags

Proposal for setting flags

login events:welcome_message --flags:global,persistence
login events:welcome_message --f:global,persistence

This change would make it easier to parse and to enforce a particular order
<identifier> <required arguments>... <optional arguments> <flags>

It would also mean using a different syntax for handling run events, as it does not work with nested conditions.

Another solution to this would be quoting each nested instruction.
run 'tag add beton' 'give emerald:5 condition:nested_condition' conditions:main_condition

from betonquest.

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.