fix: make named member prefix optional in tuple values
- Allow parsing tuple values with or without name prefixes - Supports both [x: 10; y: 20] and [10; 20] formats - Useful for CSV data where names are schema-only metadata Co-authored-by: Qwen-Coder <qwen-coder@alibabacloud.com>
This commit is contained in:
parent
9adce3d45e
commit
4e841be4f0
|
|
@ -295,10 +295,12 @@ var ValueParser = class {
|
||||||
const elementSchema = schema.elements[i];
|
const elementSchema = schema.elements[i];
|
||||||
if (elementSchema.name) {
|
if (elementSchema.name) {
|
||||||
this.skipWhitespace();
|
this.skipWhitespace();
|
||||||
if (!this.consumeStr(`${elementSchema.name}:`)) {
|
const savedPos = this.pos;
|
||||||
throw new ParseError(`Expected ${elementSchema.name}:`, this.pos);
|
if (this.consumeStr(`${elementSchema.name}:`)) {
|
||||||
}
|
|
||||||
this.skipWhitespace();
|
this.skipWhitespace();
|
||||||
|
} else {
|
||||||
|
this.pos = savedPos;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
result.push(this.parseValue(elementSchema.schema, false));
|
result.push(this.parseValue(elementSchema.schema, false));
|
||||||
this.skipWhitespace();
|
this.skipWhitespace();
|
||||||
|
|
|
||||||
|
|
@ -261,10 +261,12 @@ var ValueParser = class {
|
||||||
const elementSchema = schema.elements[i];
|
const elementSchema = schema.elements[i];
|
||||||
if (elementSchema.name) {
|
if (elementSchema.name) {
|
||||||
this.skipWhitespace();
|
this.skipWhitespace();
|
||||||
if (!this.consumeStr(`${elementSchema.name}:`)) {
|
const savedPos = this.pos;
|
||||||
throw new ParseError(`Expected ${elementSchema.name}:`, this.pos);
|
if (this.consumeStr(`${elementSchema.name}:`)) {
|
||||||
}
|
|
||||||
this.skipWhitespace();
|
this.skipWhitespace();
|
||||||
|
} else {
|
||||||
|
this.pos = savedPos;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
result.push(this.parseValue(elementSchema.schema, false));
|
result.push(this.parseValue(elementSchema.schema, false));
|
||||||
this.skipWhitespace();
|
this.skipWhitespace();
|
||||||
|
|
|
||||||
|
|
@ -288,10 +288,12 @@ var ValueParser = class {
|
||||||
const elementSchema = schema.elements[i];
|
const elementSchema = schema.elements[i];
|
||||||
if (elementSchema.name) {
|
if (elementSchema.name) {
|
||||||
this.skipWhitespace();
|
this.skipWhitespace();
|
||||||
if (!this.consumeStr(`${elementSchema.name}:`)) {
|
const savedPos = this.pos;
|
||||||
throw new ParseError(`Expected ${elementSchema.name}:`, this.pos);
|
if (this.consumeStr(`${elementSchema.name}:`)) {
|
||||||
}
|
|
||||||
this.skipWhitespace();
|
this.skipWhitespace();
|
||||||
|
} else {
|
||||||
|
this.pos = savedPos;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
result.push(this.parseValue(elementSchema.schema, false));
|
result.push(this.parseValue(elementSchema.schema, false));
|
||||||
this.skipWhitespace();
|
this.skipWhitespace();
|
||||||
|
|
|
||||||
|
|
@ -258,10 +258,12 @@ var ValueParser = class {
|
||||||
const elementSchema = schema.elements[i];
|
const elementSchema = schema.elements[i];
|
||||||
if (elementSchema.name) {
|
if (elementSchema.name) {
|
||||||
this.skipWhitespace();
|
this.skipWhitespace();
|
||||||
if (!this.consumeStr(`${elementSchema.name}:`)) {
|
const savedPos = this.pos;
|
||||||
throw new ParseError(`Expected ${elementSchema.name}:`, this.pos);
|
if (this.consumeStr(`${elementSchema.name}:`)) {
|
||||||
}
|
|
||||||
this.skipWhitespace();
|
this.skipWhitespace();
|
||||||
|
} else {
|
||||||
|
this.pos = savedPos;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
result.push(this.parseValue(elementSchema.schema, false));
|
result.push(this.parseValue(elementSchema.schema, false));
|
||||||
this.skipWhitespace();
|
this.skipWhitespace();
|
||||||
|
|
|
||||||
|
|
@ -116,12 +116,16 @@ class ValueParser {
|
||||||
this.skipWhitespace();
|
this.skipWhitespace();
|
||||||
const elementSchema = schema.elements[i];
|
const elementSchema = schema.elements[i];
|
||||||
|
|
||||||
|
// Try to consume optional name prefix (e.g., "current:")
|
||||||
if (elementSchema.name) {
|
if (elementSchema.name) {
|
||||||
this.skipWhitespace();
|
this.skipWhitespace();
|
||||||
if (!this.consumeStr(`${elementSchema.name}:`)) {
|
const savedPos = this.pos;
|
||||||
throw new ParseError(`Expected ${elementSchema.name}:`, this.pos);
|
if (this.consumeStr(`${elementSchema.name}:`)) {
|
||||||
}
|
|
||||||
this.skipWhitespace();
|
this.skipWhitespace();
|
||||||
|
} else {
|
||||||
|
// Name not found, reset position and continue without name
|
||||||
|
this.pos = savedPos;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
result.push(this.parseValue(elementSchema.schema, false));
|
result.push(this.parseValue(elementSchema.schema, false));
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue