Top 1K Features Creators Events Podcasts Books Extensions Interviews Blog Explorer CSV

DOML

< >

DOML, aka Data Oriented Markup Language, is a data notation created in 2017.

#2393on PLDB 7Years Old
Download source code:
git clone https://github.com/DOML-Lang/DOML
Source Code

The specification document for DOML


Example from the web:
# Version 0.3 // Construct a new Color Test = Color() { RGB = 255, 64, 128, } // Constructors do exist // the parameter names are purely for your own merit, they will check if its possible however (will be possible on most systems) TheSame = Color::Normalized(r: 1, g: 0.25, b: 0.5) { Name = "Bob" } // You can also just declare an object without scoping it Other = Color() Other.Name = "X" // You can declare random other values MyValue = 2 // You can also edit the original Test at any point EITHER by doing Test.R = 50 // Or by doing Test.{ G = 128 } // You can declare arrays like ArrayObject = []Color { ::Normalized(0.95, 0.55, 0.22){ Name = "Other", // Trailing commas are always allowed }, // You can still do an empty construction ::() { RGB = 50, 25, 125, }, // And thus you can leave out the ::() { RGB = 50, 25, 125, }, } // You can also copy objects by doing NewObj = Other // Or can do something like NewObj.Name = ArrayObject[0].Name // You can also declare arrays inside object definitions MyTags = Tags() { // Note: all have to be of the same type SetTags = ["Hello", "Other", "bits", "bobs", "kick"] Name = MyTags.GetTags[0] // And indexing them works like you would think } // You can declare dictionaries like // Dictionaries within objects can also be created similarly MyDictionary = [String : Color] { { "Bob" : Color::Normalized(0.5, 1.2, 3.5) { Name = "Bob's Color" } }, } // No need to keep classes around in this example # Deinit all

- Build the next great programming language Add Issues About Search Keywords Livestreams Labs Resources Acknowledgements

Built with Scroll v154.3.0