mirror of
https://github.com/barsdeveloper/ueblueprint.git
synced 2026-02-04 08:50:33 +08:00
Niagara and Metasound nodes WIP
* Keep track of entities * Fix renaming * Niagara variables wip * Several niagara decode and test * Move nodeTemplate code to dedicated file, self node added * Move node decoding functions to dedicated files * Move pin decoding logic to dedicated files * Accept space separated keys in objects * Build * Prevent a crash in case of incomplete object * Avoid creating objects unnecessarily * types formatting * Initial metasound style * Common pcg nodes colors * Fix string serialization * Metasound new styles and fixes * More metasound styles and colors * WIP * Several fixes * More tests and fixes * Clean gitignore
This commit is contained in:
@@ -25,6 +25,7 @@ export default class Grammar {
|
||||
static Word = Grammar.separatedBy("[a-zA-Z]", "_")
|
||||
static Symbol = /[a-zA-Z_]\w*/
|
||||
static DotSeparatedSymbols = Grammar.separatedBy(this.Symbol.source, "\\.")
|
||||
static MultipleWordsSymbols = Grammar.separatedBy(this.Symbol.source, "(?:\\.|\\ +)")
|
||||
static PathFragment = Grammar.separatedBy(this.Symbol.source, "[\\.:]")
|
||||
static PathSpaceFragment = Grammar.separatedBy(this.Symbol.source, "[\\.:\\ ]")
|
||||
static Path = new RegExp(`(?:\\/${this.PathFragment.source}){2,}`) // Multiple (2+) /PathFragment
|
||||
@@ -57,7 +58,7 @@ export default class Grammar {
|
||||
static symbol = Parsernostrum.reg(Grammar.Regex.Symbol)
|
||||
static symbolQuoted = Parsernostrum.reg(new RegExp('"(' + Grammar.Regex.Symbol.source + ')"'), 1)
|
||||
static attributeName = Parsernostrum.reg(Grammar.Regex.DotSeparatedSymbols)
|
||||
static attributeNameQuoted = Parsernostrum.reg(new RegExp('"(' + Grammar.Regex.DotSeparatedSymbols.source + ')"'), 1)
|
||||
static attributeNameQuoted = Parsernostrum.reg(new RegExp('"(' + Grammar.Regex.InsideString.source + ')"'), 1)
|
||||
static guid = Parsernostrum.reg(new RegExp(`${Grammar.Regex.HexDigit.source}{32}`))
|
||||
static commaSeparation = Parsernostrum.reg(/\s*,\s*(?!\))/)
|
||||
static commaOrSpaceSeparation = Parsernostrum.reg(/\s*,\s*(?!\))|\s+/)
|
||||
@@ -69,11 +70,12 @@ export default class Grammar {
|
||||
/**
|
||||
* @template T
|
||||
* @param {AttributeInfo<T>} attribute
|
||||
* @param {Parsernostrum<any>} defaultGrammar
|
||||
* @returns {Parsernostrum<T>}
|
||||
*/
|
||||
static grammarFor(attribute, type = attribute?.type, defaultGrammar = this.unknownValue) {
|
||||
let result = defaultGrammar
|
||||
if (type instanceof Array) {
|
||||
if (type === Array || type instanceof Array) {
|
||||
if (attribute?.inlined) {
|
||||
return this.grammarFor(undefined, type[0])
|
||||
}
|
||||
@@ -123,7 +125,7 @@ export default class Grammar {
|
||||
if (result == this.unknownValue) {
|
||||
result = this.string
|
||||
} else {
|
||||
result = Parsernostrum.seq(Parsernostrum.str('"'), result, Parsernostrum.str('"'))
|
||||
result = Parsernostrum.seq(Parsernostrum.str('"'), result, Parsernostrum.str('"')).map(([_0, value, _2]) => value)
|
||||
}
|
||||
}
|
||||
if (attribute.nullable) {
|
||||
@@ -233,7 +235,6 @@ export default class Grammar {
|
||||
})
|
||||
}
|
||||
|
||||
/* --- Entity --- */
|
||||
|
||||
/** @type {Parsernostrum<any>} */
|
||||
static unknownValue // Defined in initializeSerializerFactor to avoid circular include
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user