coml 0.0.1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (6) hide show
  1. checksums.yaml +7 -0
  2. data/.gitignore +56 -0
  3. data/LICENSE +21 -0
  4. data/README.md +2 -0
  5. data/coml.ebnf +97 -0
  6. metadata +49 -0
@@ -0,0 +1,7 @@
1
+ ---
2
+ SHA256:
3
+ metadata.gz: 3864785e2474120b2408a1e3b5e08a14573c9591768c149758d16e6475d84abb
4
+ data.tar.gz: 9e0b9c5bec9706f2826afd0d1b6d2ce235ab4926744d02990881075850a3920e
5
+ SHA512:
6
+ metadata.gz: 9ffbcc1ad69429251e14db370bd2b5c51dd3dd0220bec1aa3cb7329a17280f23a86be82cd3a860fb71e4b01cfa1cd0049d91655b38c1762f4589ab0ef36bc3c4
7
+ data.tar.gz: 6b6487f0e0d54908ab8029f7eb780b38a9a75aef29bed91843d478251e490a48c20043be0b3a23227f22cee98671b4aadb1afc8bf67195081984a54ebf8b685c
@@ -0,0 +1,56 @@
1
+ *.gem
2
+ *.rbc
3
+ /.config
4
+ /coverage/
5
+ /InstalledFiles
6
+ /pkg/
7
+ /spec/reports/
8
+ /spec/examples.txt
9
+ /test/tmp/
10
+ /test/version_tmp/
11
+ /tmp/
12
+
13
+ # Used by dotenv library to load environment variables.
14
+ # .env
15
+
16
+ # Ignore Byebug command history file.
17
+ .byebug_history
18
+
19
+ ## Specific to RubyMotion:
20
+ .dat*
21
+ .repl_history
22
+ build/
23
+ *.bridgesupport
24
+ build-iPhoneOS/
25
+ build-iPhoneSimulator/
26
+
27
+ ## Specific to RubyMotion (use of CocoaPods):
28
+ #
29
+ # We recommend against adding the Pods directory to your .gitignore. However
30
+ # you should judge for yourself, the pros and cons are mentioned at:
31
+ # https://guides.cocoapods.org/using/using-cocoapods.html#should-i-check-the-pods-directory-into-source-control
32
+ #
33
+ # vendor/Pods/
34
+
35
+ ## Documentation cache and generated files:
36
+ /.yardoc/
37
+ /_yardoc/
38
+ /doc/
39
+ /rdoc/
40
+
41
+ ## Environment normalization:
42
+ /.bundle/
43
+ /vendor/bundle
44
+ /lib/bundler/man/
45
+
46
+ # for a library or gem, you might want to ignore these files since the code is
47
+ # intended to run in multiple environments; otherwise, check them in:
48
+ # Gemfile.lock
49
+ # .ruby-version
50
+ # .ruby-gemset
51
+
52
+ # unless supporting rvm < 1.11.0 or doing something fancy, ignore this:
53
+ .rvmrc
54
+
55
+ # Used by RuboCop. Remote config files pulled in from inherit_from directive.
56
+ # .rubocop-https?--*
data/LICENSE ADDED
@@ -0,0 +1,21 @@
1
+ MIT License
2
+
3
+ Copyright (c) 2020 coderemixer
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining a copy
6
+ of this software and associated documentation files (the "Software"), to deal
7
+ in the Software without restriction, including without limitation the rights
8
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
+ copies of the Software, and to permit persons to whom the Software is
10
+ furnished to do so, subject to the following conditions:
11
+
12
+ The above copyright notice and this permission notice shall be included in all
13
+ copies or substantial portions of the Software.
14
+
15
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21
+ SOFTWARE.
@@ -0,0 +1,2 @@
1
+ # coml
2
+ Configuration-Oriented Markup Language
@@ -0,0 +1,97 @@
1
+ <coml> ::= <combined> <optionalSplitter>;
2
+
3
+ (* Basic Token *)
4
+
5
+ <whitespace> ::= " " | "\t";
6
+ <whitespaces> ::= <whitespace> | <whitespace> <whitespaces>;
7
+ <optionalWhiteSpaces> ::= "" | <whitespaces>;
8
+ <eol> ::= "\r\n" | "\r" | "\n";
9
+ <eols> ::= <eol> | <eol> <eols>;
10
+ <splitter> ::= <whitespaces> | <eols>;
11
+ <optionalSplitter> ::= "" | <splitter> | <splitter><optionalSplitter>;
12
+
13
+ (* Basic Types *)
14
+
15
+ <basicTypes> ::= <number> | <boolean> | <string> | <array> | <hash> | <patchKey> | <patch> | "nil" | "undefined";
16
+
17
+ (* Basic Types: Number *)
18
+
19
+ <digit> ::= "1" | "2" | "3" | "4" | "5" | "6" | "7" | "8" | "9";
20
+ <natural> ::= <digit> | "0" | <natural> "0" | <digit> <natural>;
21
+ <decInteger> ::= <natural> | "-" <natural> | "+" <natural>;
22
+ <decimal> ::= <decInteger> "." <natural>;
23
+ <float> ::= <decInteger> "f" | <decimal>;
24
+
25
+ <binDigit> ::= "0" | "1";
26
+ <binDigits> ::= <binDigit> | <binDigit> <binDigits>;
27
+ <binNature> ::= "0b" <binDigits> | <binDigits>;
28
+ <binInteger> ::= <binNature> | "-" <binNature> | "+" <binNature>;
29
+
30
+ <octDigit> ::= "0" | "1" | "2" | "3" | "4" | "5" | "6" | "7";
31
+ <octDigits> ::= <octDigit> | <octDigit> <octDigits>;
32
+ <octNature> ::= "0o" <octDigits> | "0" <octDigits>;
33
+ <octInteger> ::= <octNature> | "-" <octNature> | "+" <octNature>;
34
+
35
+ <hexDigit> ::= "0" | "1" | "2" | "3" | "4" | "5" | "6" | "7" | "8" | "9"
36
+ | "a" | "b" | "c" | "d" | "e" | "f" | "A" | "B" | "C" | "D" | "E" | "F";
37
+ <hexDigits> ::= <hexDigit> | <hexDigit> <hexDigits>;
38
+ <hexNature> ::= "0x" <hexDigits>;
39
+ <hexInteger> ::= <hexNature> | "-" <hexNature> | "+" <hexNature>;
40
+
41
+ <integer> ::= <binInteger> | <octInteger> | <hexInteger> | <decInteger>;
42
+ <number> ::= <integer> | <float>;
43
+
44
+ (* Basic Types: Boolean *)
45
+
46
+ <boolean> ::= "true" | "false";
47
+
48
+ (* Basic Types: String *)
49
+
50
+ <doubleQuotedString> ::= #'".*?"';
51
+ <singleQuotedString> ::= #'\'.*?\'';
52
+ <string> ::= <doubleQuotedString> | <singleQuotedString>;
53
+
54
+ (* Basic Types: Array *)
55
+
56
+ <arrayElement> ::= <optionalSplitter> <basicTypes> <optionalSplitter>;
57
+ <arrayElements> ::= <arrayElement> "," <arrayElement> | <arrayElement> "," | <arrayElement>;
58
+
59
+ <inlineArrayElement> ::= <optionalSplitter> "-" <optionalWhiteSpaces> <basicTypes> <optionalSplitter>;
60
+ <inlineArrayElements> ::= <inlineArrayElement> | <inlineArrayElement> <eols> <inlineArrayElements>;
61
+
62
+ <array> ::= "[" <optionalSplitter> <arrayElements> <optionalSplitter> "]"
63
+ | "[" <optionalSplitter> "]"
64
+ | <inlineArrayElements>;
65
+
66
+ (* Basic Types: Hash *)
67
+
68
+ <keyCharStart> ::= "a" | "b" | "c" | "d" | "e" | "f" | "g" | "h" | "i" | "j" | "k" | "l" | "m"
69
+ | "n" | "o" | "p" | "q" | "r" | "s" | "t" | "u" | "v" | "w" | "x" | "y" | "z"
70
+ | "A" | "B" | "C" | "D" | "E" | "F" | "G" | "H" | "I" | "J" | "K" | "L" | "M"
71
+ | "N" | "O" | "P" | "Q" | "R" | "S" | "T" | "U" | "V" | "W" | "X" | "Y" | "Z";
72
+
73
+ <keyCharMiddle> ::= <keyCharStart> | <digit> | "0" | "_";
74
+ <keyCharMiddles> ::= <keyCharMiddle> | <keyCharMiddle> <keyCharMiddles>;
75
+ <keyChars> ::= <keyCharStart> | <keyCharStart> <keyCharMiddles>;
76
+ <key> ::= <keyChars> | <number> | <boolean> | <string>;
77
+ <hashElement> ::= <optionalWhiteSpaces> <key> <optionalSplitter> ":" <optionalSplitter> <basicTypes>;
78
+ <hash> ::= <hashElement> | <hashElement> <eols> <hash>;
79
+
80
+ (* Import *)
81
+
82
+ <import> ::= "import" <whitespaces> <string> <whitespaces> "as" <whitespaces> <key>;
83
+ <imports> ::= <import> | <import> <eols> <imports>;
84
+
85
+ (* Patch *)
86
+
87
+ <patchKey> ::= <patchKey> "." <key> | <patchKey> "[" <optionalWhiteSpaces> <key> <optionalWhiteSpaces> "]" | <key>;
88
+ <patchKeyVal> ::= <patchKey> <optionalWhiteSpaces> "=" <optionalWhiteSpaces> <basicTypes>;
89
+ <patchKeyVals> ::= <patchKeyVal> | <patchKeyVal> <eols> <optionalWhiteSpaces> <patchKeyVals> <optionalWhiteSpaces>;
90
+ <patch> ::= <key> <optionalSplitter> "{" <optionalSplitter> <patchKeyVals> <optionalSplitter> "}" <optionalSplitter>;
91
+
92
+ (* Combinition *)
93
+
94
+ <combined> ::= <hash> | <array>
95
+ | <imports> <eols> <hash>
96
+ | <imports> <eols> <array>
97
+ | <imports> <eols> <patch>;
metadata ADDED
@@ -0,0 +1,49 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: coml
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.0.1
5
+ platform: ruby
6
+ authors:
7
+ - Delton Ding
8
+ autorequire:
9
+ bindir: bin
10
+ cert_chain: []
11
+ date: 2020-06-13 00:00:00.000000000 Z
12
+ dependencies: []
13
+ description: Config-Oriented Markup Language
14
+ email:
15
+ - dsh0416@gmail.com
16
+ executables: []
17
+ extensions: []
18
+ extra_rdoc_files: []
19
+ files:
20
+ - ".gitignore"
21
+ - LICENSE
22
+ - README.md
23
+ - coml.ebnf
24
+ homepage: https://coml.dev
25
+ licenses:
26
+ - MIT
27
+ metadata:
28
+ homepage_uri: https://coml.dev
29
+ source_code_uri: https://github.com/coderemixer/coml
30
+ post_install_message:
31
+ rdoc_options: []
32
+ require_paths:
33
+ - lib
34
+ required_ruby_version: !ruby/object:Gem::Requirement
35
+ requirements:
36
+ - - ">="
37
+ - !ruby/object:Gem::Version
38
+ version: 2.3.0
39
+ required_rubygems_version: !ruby/object:Gem::Requirement
40
+ requirements:
41
+ - - ">="
42
+ - !ruby/object:Gem::Version
43
+ version: '0'
44
+ requirements: []
45
+ rubygems_version: 3.1.2
46
+ signing_key:
47
+ specification_version: 4
48
+ summary: Config-Oriented Markup Language
49
+ test_files: []