@naiv/swan-dsl 0.0.1 → 0.0.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1,6 +1,6 @@
1
1
  import type { ParseOptions, Program } from "./types";
2
2
  export type { ParseOptions, Program } from "./types";
3
- export type { AppDecl, BinaryExpr, BinaryOperator, BooleanLiteral, ButtonStmt, ClickStmt, ComponentDecl, ConditionalStmt, Expression, FieldStmt, HandlerStmt, HeaderStmt, IdentifierExpr, InputStmt, LinkStmt, Literal, MemberExpr, NavTarget, NumberLiteral, OutcomeClause, PageDecl, Position, SemanticRuleCode, Statement, StringLiteral, SubmitStmt, TextStmt, UnaryExpr, UseStmt, } from "./types.js";
3
+ export type { AppDecl, BinaryExpr, BinaryOperator, BooleanLiteral, ButtonStmt, ChartPoint, ChartSeries, ChartStmt, ChartType, ClickStmt, ComponentDecl, ConditionalStmt, Expression, FieldStmt, HandlerStmt, HeaderStmt, IdentifierExpr, InputStmt, LinkStmt, Literal, MemberExpr, NavTarget, NumberLiteral, OutcomeClause, PageDecl, Position, QueryArg, QueryStmt, QueryType, SemanticRuleCode, Statement, StringLiteral, SubmitStmt, TableRow, TableStmt, TextStmt, UnaryExpr, UseStmt, } from "./types.js";
4
4
  export { ParseError, SemanticError } from "./types.js";
5
5
  /**
6
6
  * Parse and semantically validate a SWAN DSL source string.
@@ -9,7 +9,7 @@ export { ParseError, SemanticError } from "./types.js";
9
9
  * @param options - Optional: `{ strictMode: true }` enables SR-4 orphan page check
10
10
  * @returns A fully-typed `Program` AST
11
11
  * @throws {ParseError} on syntax errors
12
- * @throws {SemanticError} on semantic violations (SR-1 through SR-6)
12
+ * @throws {SemanticError} on semantic violations (SR-1 through SR-9)
13
13
  */
14
14
  export declare function parse(source: string, options?: ParseOptions): Program;
15
15
  /**
@@ -19,7 +19,7 @@ export declare function parse(source: string, options?: ParseOptions): Program;
19
19
  * @param options - Optional: `{ strictMode: true }` enables SR-4 orphan page check
20
20
  * @returns A fully-typed `Program` AST
21
21
  * @throws {ParseError} on syntax errors
22
- * @throws {SemanticError} on semantic violations (SR-1 through SR-6)
22
+ * @throws {SemanticError} on semantic violations (SR-1 through SR-9)
23
23
  */
24
24
  export declare function parseFile(filePath: string, options?: ParseOptions): Promise<Program>;
25
25
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAOA,OAAO,KAAK,EAAE,YAAY,EAAE,OAAO,EAAE,MAAM,SAAS,CAAC;AAErD,YAAY,EAAE,YAAY,EAAE,OAAO,EAAE,MAAM,SAAS,CAAC;AACrD,YAAY,EACR,OAAO,EACP,UAAU,EACV,cAAc,EACd,cAAc,EACd,UAAU,EACV,SAAS,EACT,aAAa,EACb,eAAe,EACf,UAAU,EACV,SAAS,EACT,WAAW,EACX,UAAU,EACV,cAAc,EACd,SAAS,EACT,QAAQ,EACR,OAAO,EACP,UAAU,EACV,SAAS,EACT,aAAa,EACb,aAAa,EACb,QAAQ,EACR,QAAQ,EACR,gBAAgB,EAChB,SAAS,EACT,aAAa,EACb,UAAU,EACV,QAAQ,EACR,SAAS,EACT,OAAO,GACV,MAAM,YAAY,CAAC;AACpB,OAAO,EAAE,UAAU,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AAMvD;;;;;;;;GAQG;AACH,wBAAgB,KAAK,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,GAAE,YAAiB,GAAG,OAAO,CAIzE;AAMD;;;;;;;;GAQG;AACH,wBAAsB,SAAS,CAC3B,QAAQ,EAAE,MAAM,EAChB,OAAO,GAAE,YAAiB,GAC3B,OAAO,CAAC,OAAO,CAAC,CAGlB"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAOA,OAAO,KAAK,EAAE,YAAY,EAAE,OAAO,EAAE,MAAM,SAAS,CAAC;AAErD,YAAY,EAAE,YAAY,EAAE,OAAO,EAAE,MAAM,SAAS,CAAC;AACrD,YAAY,EACR,OAAO,EACP,UAAU,EACV,cAAc,EACd,cAAc,EACd,UAAU,EACV,UAAU,EACV,WAAW,EACX,SAAS,EACT,SAAS,EACT,SAAS,EACT,aAAa,EACb,eAAe,EACf,UAAU,EACV,SAAS,EACT,WAAW,EACX,UAAU,EACV,cAAc,EACd,SAAS,EACT,QAAQ,EACR,OAAO,EACP,UAAU,EACV,SAAS,EACT,aAAa,EACb,aAAa,EACb,QAAQ,EACR,QAAQ,EACR,QAAQ,EACR,SAAS,EACT,SAAS,EACT,gBAAgB,EAChB,SAAS,EACT,aAAa,EACb,UAAU,EACV,QAAQ,EACR,SAAS,EACT,QAAQ,EACR,SAAS,EACT,OAAO,GACV,MAAM,YAAY,CAAC;AACpB,OAAO,EAAE,UAAU,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AAMvD;;;;;;;;GAQG;AACH,wBAAgB,KAAK,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,GAAE,YAAiB,GAAG,OAAO,CAIzE;AAMD;;;;;;;;GAQG;AACH,wBAAsB,SAAS,CAC3B,QAAQ,EAAE,MAAM,EAChB,OAAO,GAAE,YAAiB,GAC3B,OAAO,CAAC,OAAO,CAAC,CAGlB"}
package/dist/src/index.js CHANGED
@@ -22,7 +22,7 @@ Object.defineProperty(exports, "SemanticError", { enumerable: true, get: functio
22
22
  * @param options - Optional: `{ strictMode: true }` enables SR-4 orphan page check
23
23
  * @returns A fully-typed `Program` AST
24
24
  * @throws {ParseError} on syntax errors
25
- * @throws {SemanticError} on semantic violations (SR-1 through SR-6)
25
+ * @throws {SemanticError} on semantic violations (SR-1 through SR-9)
26
26
  */
27
27
  function parse(source, options = {}) {
28
28
  const program = (0, parser_1.parse)(source);
@@ -39,7 +39,7 @@ function parse(source, options = {}) {
39
39
  * @param options - Optional: `{ strictMode: true }` enables SR-4 orphan page check
40
40
  * @returns A fully-typed `Program` AST
41
41
  * @throws {ParseError} on syntax errors
42
- * @throws {SemanticError} on semantic violations (SR-1 through SR-6)
42
+ * @throws {SemanticError} on semantic violations (SR-1 through SR-9)
43
43
  */
44
44
  async function parseFile(filePath, options = {}) {
45
45
  const source = await (0, promises_1.readFile)(filePath, "utf-8");
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":";AAAA,gFAAgF;AAChF,wBAAwB;AACxB,gFAAgF;;;AAsDhF,sBAIC;AAeD,8BAMC;AA7ED,+CAA4C;AAC5C,qCAAgD;AAChD,yCAA4C;AAmC5C,uCAAuD;AAA9C,sGAAA,UAAU,OAAA;AAAE,yGAAA,aAAa,OAAA;AAElC,8EAA8E;AAC9E,mCAAmC;AACnC,8EAA8E;AAE9E;;;;;;;;GAQG;AACH,SAAgB,KAAK,CAAC,MAAc,EAAE,UAAwB,EAAE;IAC5D,MAAM,OAAO,GAAG,IAAA,cAAW,EAAC,MAAM,CAAC,CAAC;IACpC,IAAA,yBAAc,EAAC,OAAO,EAAE,EAAE,UAAU,EAAE,OAAO,CAAC,UAAU,EAAE,CAAC,CAAC;IAC5D,OAAO,OAAO,CAAC;AACnB,CAAC;AAED,8EAA8E;AAC9E,+BAA+B;AAC/B,8EAA8E;AAE9E;;;;;;;;GAQG;AACI,KAAK,UAAU,SAAS,CAC3B,QAAgB,EAChB,UAAwB,EAAE;IAE1B,MAAM,MAAM,GAAG,MAAM,IAAA,mBAAQ,EAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;IACjD,OAAO,KAAK,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;AAClC,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":";AAAA,gFAAgF;AAChF,wBAAwB;AACxB,gFAAgF;;;AA+DhF,sBAIC;AAeD,8BAMC;AAtFD,+CAA4C;AAC5C,qCAAgD;AAChD,yCAA4C;AA4C5C,uCAAuD;AAA9C,sGAAA,UAAU,OAAA;AAAE,yGAAA,aAAa,OAAA;AAElC,8EAA8E;AAC9E,mCAAmC;AACnC,8EAA8E;AAE9E;;;;;;;;GAQG;AACH,SAAgB,KAAK,CAAC,MAAc,EAAE,UAAwB,EAAE;IAC5D,MAAM,OAAO,GAAG,IAAA,cAAW,EAAC,MAAM,CAAC,CAAC;IACpC,IAAA,yBAAc,EAAC,OAAO,EAAE,EAAE,UAAU,EAAE,OAAO,CAAC,UAAU,EAAE,CAAC,CAAC;IAC5D,OAAO,OAAO,CAAC;AACnB,CAAC;AAED,8EAA8E;AAC9E,+BAA+B;AAC/B,8EAA8E;AAE9E;;;;;;;;GAQG;AACI,KAAK,UAAU,SAAS,CAC3B,QAAgB,EAChB,UAAwB,EAAE;IAE1B,MAAM,MAAM,GAAG,MAAM,IAAA,mBAAQ,EAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;IACjD,OAAO,KAAK,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;AAClC,CAAC"}
@@ -1,6 +1,6 @@
1
1
  import moo from "moo";
2
- export declare const KEYWORDS: readonly ["app", "page", "component", "entry", "use", "header", "text", "button", "link", "field", "input", "submit", "click", "on", "if", "true", "false"];
2
+ export declare const KEYWORDS: readonly ["app", "page", "component", "entry", "use", "header", "text", "button", "link", "field", "input", "submit", "click", "on", "if", "query", "string", "number", "boolean", "true", "false", "table", "columns", "row", "chart", "series", "point", "bar", "line", "pie", "area", "scatter"];
3
3
  export type Keyword = (typeof KEYWORDS)[number];
4
- export type TokenType = Keyword | "IDENT" | "STRING" | "NUMBER" | "ARROW" | "LBRACE" | "RBRACE" | "DOT" | "EQ" | "NEQ" | "LTE" | "GTE" | "LT" | "GT" | "AND" | "OR" | "BANG" | "NL" | "WS" | "COMMENT";
4
+ export type TokenType = Keyword | "IDENT" | "STRING" | "NUMBER" | "ARROW" | "LBRACE" | "RBRACE" | "LBRACKET" | "RBRACKET" | "COMMA" | "DOT" | "EQ" | "NEQ" | "LTE" | "GTE" | "LT" | "GT" | "AND" | "OR" | "BANG" | "ASSIGN" | "COLON" | "QUESTION" | "AMPERSAND" | "PLUS" | "NL" | "WS" | "COMMENT";
5
5
  export declare const lexer: moo.Lexer;
6
6
  //# sourceMappingURL=lexer.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"lexer.d.ts","sourceRoot":"","sources":["../../src/lexer.ts"],"names":[],"mappings":"AAIA,OAAO,GAAG,MAAM,KAAK,CAAC;AAItB,eAAO,MAAM,QAAQ,6JAkBX,CAAC;AAEX,MAAM,MAAM,OAAO,GAAG,CAAC,OAAO,QAAQ,CAAC,CAAC,MAAM,CAAC,CAAC;AAEhD,MAAM,MAAM,SAAS,GACf,OAAO,GACP,OAAO,GACP,QAAQ,GACR,QAAQ,GACR,OAAO,GACP,QAAQ,GACR,QAAQ,GACR,KAAK,GACL,IAAI,GACJ,KAAK,GACL,KAAK,GACL,KAAK,GACL,IAAI,GACJ,IAAI,GACJ,KAAK,GACL,IAAI,GACJ,MAAM,GACN,IAAI,GACJ,IAAI,GACJ,SAAS,CAAC;AAMhB,eAAO,MAAM,KAAK,WAoChB,CAAC"}
1
+ {"version":3,"file":"lexer.d.ts","sourceRoot":"","sources":["../../src/lexer.ts"],"names":[],"mappings":"AAIA,OAAO,GAAG,MAAM,KAAK,CAAC;AAItB,eAAO,MAAM,QAAQ,qSAoCX,CAAC;AAEX,MAAM,MAAM,OAAO,GAAG,CAAC,OAAO,QAAQ,CAAC,CAAC,MAAM,CAAC,CAAC;AAEhD,MAAM,MAAM,SAAS,GACf,OAAO,GACP,OAAO,GACP,QAAQ,GACR,QAAQ,GACR,OAAO,GACP,QAAQ,GACR,QAAQ,GACR,UAAU,GACV,UAAU,GACV,OAAO,GACP,KAAK,GACL,IAAI,GACJ,KAAK,GACL,KAAK,GACL,KAAK,GACL,IAAI,GACJ,IAAI,GACJ,KAAK,GACL,IAAI,GACJ,MAAM,GACN,QAAQ,GACR,OAAO,GACP,UAAU,GACV,WAAW,GACX,MAAM,GACN,IAAI,GACJ,IAAI,GACJ,SAAS,CAAC;AAMhB,eAAO,MAAM,KAAK,WA6ChB,CAAC"}
package/dist/src/lexer.js CHANGED
@@ -26,8 +26,26 @@ exports.KEYWORDS = [
26
26
  "click",
27
27
  "on",
28
28
  "if",
29
+ "query",
30
+ "string",
31
+ "number",
32
+ "boolean",
29
33
  "true",
30
34
  "false",
35
+ // ── Table keywords ──────────────────────────────────────────────────────
36
+ "table",
37
+ "columns",
38
+ "row",
39
+ // ── Chart keywords ──────────────────────────────────────────────────────
40
+ "chart",
41
+ "series",
42
+ "point",
43
+ // ── Chart type keywords ─────────────────────────────────────────────────
44
+ "bar",
45
+ "line",
46
+ "pie",
47
+ "area",
48
+ "scatter",
31
49
  ];
32
50
  // Build the moo lexer rules.
33
51
  // moo uses longest-match semantics and processes rules top-to-bottom
@@ -51,7 +69,16 @@ exports.lexer = moo_1.default.compile({
51
69
  BANG: "!",
52
70
  LBRACE: "{",
53
71
  RBRACE: "}",
72
+ LBRACKET: "[",
73
+ RBRACKET: "]",
74
+ COMMA: ",",
54
75
  DOT: ".",
76
+ COLON: ":",
77
+ QUESTION: "?",
78
+ AMPERSAND: "&",
79
+ PLUS: "+",
80
+ // Assignment = (must come after EQ "==" check; moo checks longest match first)
81
+ ASSIGN: "=",
55
82
  // Literals
56
83
  STRING: { match: /"[^"]*"/, value: (s) => s.slice(1, -1) },
57
84
  NUMBER: {
@@ -1 +1 @@
1
- {"version":3,"file":"lexer.js","sourceRoot":"","sources":["../../src/lexer.ts"],"names":[],"mappings":";AAAA,gFAAgF;AAChF,uBAAuB;AACvB,gFAAgF;;;;;;AAEhF,8CAAsB;AAEtB,oEAAoE;AACpE,wDAAwD;AAC3C,QAAA,QAAQ,GAAG;IACpB,KAAK;IACL,MAAM;IACN,WAAW;IACX,OAAO;IACP,KAAK;IACL,QAAQ;IACR,MAAM;IACN,QAAQ;IACR,MAAM;IACN,OAAO;IACP,OAAO;IACP,QAAQ;IACR,OAAO;IACP,IAAI;IACJ,IAAI;IACJ,MAAM;IACN,OAAO;CACD,CAAC;AA0BX,6BAA6B;AAC7B,qEAAqE;AACrE,sEAAsE;AACtE,kDAAkD;AACrC,QAAA,KAAK,GAAG,aAAG,CAAC,OAAO,CAAC;IAC7B,EAAE,EAAE,EAAE,KAAK,EAAE,QAAQ,EAAE,UAAU,EAAE,KAAK,EAAE;IAC1C,EAAE,EAAE,EAAE,KAAK,EAAE,OAAO,EAAE,UAAU,EAAE,IAAI,EAAE;IACxC,OAAO,EAAE,YAAY;IACrB,kEAAkE;IAClE,KAAK,EAAE,IAAI;IACX,EAAE,EAAE,IAAI;IACR,GAAG,EAAE,IAAI;IACT,GAAG,EAAE,IAAI;IACT,GAAG,EAAE,IAAI;IACT,GAAG,EAAE,IAAI;IACT,EAAE,EAAE,IAAI;IACR,sCAAsC;IACtC,EAAE,EAAE,GAAG;IACP,EAAE,EAAE,GAAG;IACP,IAAI,EAAE,GAAG;IACT,MAAM,EAAE,GAAG;IACX,MAAM,EAAE,GAAG;IACX,GAAG,EAAE,GAAG;IACR,WAAW;IACX,MAAM,EAAE,EAAE,KAAK,EAAE,SAAS,EAAE,KAAK,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE;IAC1D,MAAM,EAAE;QACJ,KAAK,EAAE,qBAAqB;QAC5B,KAAK,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;KAClB;IACD,+DAA+D;IAC/D,+DAA+D;IAC/D,KAAK,EAAE;QACH,KAAK,EAAE,uBAAuB;QAC9B,IAAI,EAAE,aAAG,CAAC,QAAQ,CACd,MAAM,CAAC,WAAW,CAAC,gBAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAG7C,CACJ;KACJ;CACJ,CAAC,CAAC"}
1
+ {"version":3,"file":"lexer.js","sourceRoot":"","sources":["../../src/lexer.ts"],"names":[],"mappings":";AAAA,gFAAgF;AAChF,uBAAuB;AACvB,gFAAgF;;;;;;AAEhF,8CAAsB;AAEtB,oEAAoE;AACpE,wDAAwD;AAC3C,QAAA,QAAQ,GAAG;IACpB,KAAK;IACL,MAAM;IACN,WAAW;IACX,OAAO;IACP,KAAK;IACL,QAAQ;IACR,MAAM;IACN,QAAQ;IACR,MAAM;IACN,OAAO;IACP,OAAO;IACP,QAAQ;IACR,OAAO;IACP,IAAI;IACJ,IAAI;IACJ,OAAO;IACP,QAAQ;IACR,QAAQ;IACR,SAAS;IACT,MAAM;IACN,OAAO;IACP,2EAA2E;IAC3E,OAAO;IACP,SAAS;IACT,KAAK;IACL,2EAA2E;IAC3E,OAAO;IACP,QAAQ;IACR,OAAO;IACP,2EAA2E;IAC3E,KAAK;IACL,MAAM;IACN,KAAK;IACL,MAAM;IACN,SAAS;CACH,CAAC;AAkCX,6BAA6B;AAC7B,qEAAqE;AACrE,sEAAsE;AACtE,kDAAkD;AACrC,QAAA,KAAK,GAAG,aAAG,CAAC,OAAO,CAAC;IAC7B,EAAE,EAAE,EAAE,KAAK,EAAE,QAAQ,EAAE,UAAU,EAAE,KAAK,EAAE;IAC1C,EAAE,EAAE,EAAE,KAAK,EAAE,OAAO,EAAE,UAAU,EAAE,IAAI,EAAE;IACxC,OAAO,EAAE,YAAY;IACrB,kEAAkE;IAClE,KAAK,EAAE,IAAI;IACX,EAAE,EAAE,IAAI;IACR,GAAG,EAAE,IAAI;IACT,GAAG,EAAE,IAAI;IACT,GAAG,EAAE,IAAI;IACT,GAAG,EAAE,IAAI;IACT,EAAE,EAAE,IAAI;IACR,sCAAsC;IACtC,EAAE,EAAE,GAAG;IACP,EAAE,EAAE,GAAG;IACP,IAAI,EAAE,GAAG;IACT,MAAM,EAAE,GAAG;IACX,MAAM,EAAE,GAAG;IACX,QAAQ,EAAE,GAAG;IACb,QAAQ,EAAE,GAAG;IACb,KAAK,EAAE,GAAG;IACV,GAAG,EAAE,GAAG;IACR,KAAK,EAAE,GAAG;IACV,QAAQ,EAAE,GAAG;IACb,SAAS,EAAE,GAAG;IACd,IAAI,EAAE,GAAG;IACT,+EAA+E;IAC/E,MAAM,EAAE,GAAG;IACX,WAAW;IACX,MAAM,EAAE,EAAE,KAAK,EAAE,SAAS,EAAE,KAAK,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE;IAC1D,MAAM,EAAE;QACJ,KAAK,EAAE,qBAAqB;QAC5B,KAAK,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;KAClB;IACD,+DAA+D;IAC/D,+DAA+D;IAC/D,KAAK,EAAE;QACH,KAAK,EAAE,uBAAuB;QAC9B,IAAI,EAAE,aAAG,CAAC,QAAQ,CACd,MAAM,CAAC,WAAW,CAAC,gBAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAG7C,CACJ;KACJ;CACJ,CAAC,CAAC"}
@@ -36,14 +36,50 @@ export declare class Parser {
36
36
  private parseHandlerStmt;
37
37
  private parseOutcomeClause;
38
38
  private parseConditionalStmt;
39
+ /**
40
+ * query <name> [: string | number | boolean] [= <literal>]
41
+ *
42
+ * Only semantically valid inside a `page` block (SR-7 enforced by semantic checker).
43
+ */
44
+ private parseQueryStmt;
45
+ /**
46
+ * table <Name> {
47
+ * columns ["Col1", "Col2", ...]
48
+ * row [val1, val2, ...]
49
+ * ...
50
+ * }
51
+ */
52
+ private parseTableStmt;
53
+ private parseTableRow;
54
+ /**
55
+ * chart <Name> <bar|line|pie|area|scatter> {
56
+ * series "Label" {
57
+ * point x, y
58
+ * ...
59
+ * }
60
+ * ...
61
+ * }
62
+ */
63
+ private parseChartStmt;
64
+ private parseSeriesDecl;
65
+ private parseChartPoint;
66
+ /**
67
+ * NavTarget ::= "->" Identifier [ "?" QueryArg { "&" QueryArg } ]
68
+ * QueryArg ::= Identifier "=" Expression
69
+ */
39
70
  private parseNavTarget;
71
+ private parseQueryArg;
40
72
  parseExpression(): Expression;
41
73
  private parseOr;
42
74
  private parseAnd;
43
75
  private readonly COMPARISON_OPS;
44
76
  private parseComparison;
77
+ /** Handles `+` for expressions like `query.page + 1` in nav query args. */
78
+ private parseAdditive;
45
79
  private parseUnary;
46
80
  private parsePrimary;
81
+ /** Parse a bare literal (string, number, boolean). Used in `query` default values. */
82
+ private parseLiteral;
47
83
  /**
48
84
  * Expect an IDENT token (not a keyword).
49
85
  * Moo assigns keyword token types to matched words, so we need to accept
@@ -1 +1 @@
1
- {"version":3,"file":"parser.d.ts","sourceRoot":"","sources":["../../src/parser.ts"],"names":[],"mappings":"AAMA,OAAO,EAUH,KAAK,UAAU,EAaf,KAAK,OAAO,EAOf,MAAM,SAAS,CAAC;AASjB,qBAAa,MAAM;IACf,OAAO,CAAC,MAAM,CAAe;IAC7B,OAAO,CAAC,GAAG,CAAK;gBAEJ,KAAK,EAAE,MAAM;IAWzB,OAAO,CAAC,IAAI;IAIZ,OAAO,CAAC,OAAO;IAOf,OAAO,CAAC,OAAO;IAIf,OAAO,CAAC,QAAQ;IAIhB,OAAO,CAAC,UAAU;IAKlB;;;OAGG;IACH,OAAO,CAAC,MAAM;IAiBd;;OAEG;IACH,OAAO,CAAC,KAAK;IAQb,OAAO,CAAC,KAAK;IAQb,YAAY,IAAI,OAAO;IAwBvB,OAAO,CAAC,YAAY;IAkBpB,OAAO,CAAC,aAAa;IAerB,OAAO,CAAC,kBAAkB;IAe1B,OAAO,CAAC,UAAU;IAclB,OAAO,CAAC,cAAc;IA+BtB,OAAO,CAAC,eAAe;IAMvB,OAAO,CAAC,aAAa;IAMrB,OAAO,CAAC,eAAe;IAOvB,OAAO,CAAC,aAAa;IAOrB,OAAO,CAAC,cAAc;IAMtB,OAAO,CAAC,cAAc;IAQtB,OAAO,CAAC,YAAY;IAQpB,OAAO,CAAC,eAAe;IAavB,OAAO,CAAC,cAAc;IAetB,OAAO,CAAC,gBAAgB;IAoBxB,OAAO,CAAC,kBAAkB;IAc1B,OAAO,CAAC,oBAAoB;IAU5B,OAAO,CAAC,cAAc;IActB,eAAe,IAAI,UAAU;IAI7B,OAAO,CAAC,OAAO;IAiBf,OAAO,CAAC,QAAQ;IAiBhB,OAAO,CAAC,QAAQ,CAAC,cAAc,CAO5B;IAEH,OAAO,CAAC,eAAe;IAmBvB,OAAO,CAAC,UAAU;IAelB,OAAO,CAAC,YAAY;IAwEpB;;;;;OAKG;IACH,OAAO,CAAC,WAAW;IA+BnB,OAAO,CAAC,YAAY;CASvB;AAMD,wBAAgB,KAAK,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAG7C"}
1
+ {"version":3,"file":"parser.d.ts","sourceRoot":"","sources":["../../src/parser.ts"],"names":[],"mappings":"AAMA,OAAO,EAcH,KAAK,UAAU,EAaf,KAAK,OAAO,EAYf,MAAM,SAAS,CAAC;AASjB,qBAAa,MAAM;IACf,OAAO,CAAC,MAAM,CAAe;IAC7B,OAAO,CAAC,GAAG,CAAK;gBAEJ,KAAK,EAAE,MAAM;IAWzB,OAAO,CAAC,IAAI;IAIZ,OAAO,CAAC,OAAO;IAOf,OAAO,CAAC,OAAO;IAIf,OAAO,CAAC,QAAQ;IAIhB,OAAO,CAAC,UAAU;IAKlB;;;OAGG;IACH,OAAO,CAAC,MAAM;IAiBd;;OAEG;IACH,OAAO,CAAC,KAAK;IAQb,OAAO,CAAC,KAAK;IAQb,YAAY,IAAI,OAAO;IAwBvB,OAAO,CAAC,YAAY;IAkBpB,OAAO,CAAC,aAAa;IAerB,OAAO,CAAC,kBAAkB;IAe1B,OAAO,CAAC,UAAU;IAclB,OAAO,CAAC,cAAc;IAkCtB,OAAO,CAAC,eAAe;IAMvB,OAAO,CAAC,aAAa;IAMrB,OAAO,CAAC,eAAe;IAOvB,OAAO,CAAC,aAAa;IAOrB,OAAO,CAAC,cAAc;IAMtB,OAAO,CAAC,cAAc;IAQtB,OAAO,CAAC,YAAY;IAQpB,OAAO,CAAC,eAAe;IAavB,OAAO,CAAC,cAAc;IAetB,OAAO,CAAC,gBAAgB;IAoBxB,OAAO,CAAC,kBAAkB;IAc1B,OAAO,CAAC,oBAAoB;IAU5B;;;;OAIG;IACH,OAAO,CAAC,cAAc;IA4CtB;;;;;;OAMG;IACH,OAAO,CAAC,cAAc;IAoCtB,OAAO,CAAC,aAAa;IAiBrB;;;;;;;;OAQG;IACH,OAAO,CAAC,cAAc;IAkCtB,OAAO,CAAC,eAAe;IAYvB,OAAO,CAAC,eAAe;IAUvB;;;OAGG;IACH,OAAO,CAAC,cAAc;IAsBtB,OAAO,CAAC,aAAa;IAgBrB,eAAe,IAAI,UAAU;IAI7B,OAAO,CAAC,OAAO;IAiBf,OAAO,CAAC,QAAQ;IAiBhB,OAAO,CAAC,QAAQ,CAAC,cAAc,CAO5B;IAEH,OAAO,CAAC,eAAe;IAmBvB,2EAA2E;IAC3E,OAAO,CAAC,aAAa;IAiBrB,OAAO,CAAC,UAAU;IAelB,OAAO,CAAC,YAAY;IAwEpB,sFAAsF;IACtF,OAAO,CAAC,YAAY;IA4BpB;;;;;OAKG;IACH,OAAO,CAAC,WAAW;IAoCnB,OAAO,CAAC,YAAY;CASvB;AAMD,wBAAgB,KAAK,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAG7C"}
@@ -162,6 +162,9 @@ class Parser {
162
162
  case "click": return this.parseClickStmt();
163
163
  case "on": return this.parseHandlerStmt();
164
164
  case "if": return this.parseConditionalStmt();
165
+ case "query": return this.parseQueryStmt();
166
+ case "table": return this.parseTableStmt();
167
+ case "chart": return this.parseChartStmt();
165
168
  default:
166
169
  throw new types_1.ParseError(`Unexpected token "${tok.value}" — not a valid statement keyword`, this.tokenPos(tok));
167
170
  }
@@ -249,7 +252,7 @@ class Parser {
249
252
  }
250
253
  parseOutcomeClause() {
251
254
  const outcomeTok = this.expectIdent();
252
- const arrowTok = this.expect("ARROW");
255
+ this.expect("ARROW");
253
256
  const targetTok = this.expectIdent();
254
257
  return {
255
258
  outcome: outcomeTok.value,
@@ -264,11 +267,183 @@ class Parser {
264
267
  const body = this.parseBlock();
265
268
  return { kind: "ConditionalStmt", condition, body, pos: this.tokenPos(kw) };
266
269
  }
270
+ // -- Query statement -------------------------------------------------------
271
+ /**
272
+ * query <name> [: string | number | boolean] [= <literal>]
273
+ *
274
+ * Only semantically valid inside a `page` block (SR-7 enforced by semantic checker).
275
+ */
276
+ parseQueryStmt() {
277
+ const kw = this.expect("query");
278
+ const nameTok = this.expectIdent();
279
+ let valueType;
280
+ let defaultValue;
281
+ // Optional type annotation: `: string | number | boolean`
282
+ if (this.match("COLON")) {
283
+ const typeTok = this.peek();
284
+ if (typeTok &&
285
+ (typeTok.type === "string" ||
286
+ typeTok.type === "number" ||
287
+ typeTok.type === "boolean")) {
288
+ this.advance();
289
+ valueType = typeTok.value;
290
+ }
291
+ else {
292
+ const pos = typeTok ? this.tokenPos(typeTok) : this.currentPos();
293
+ const got = typeTok ? `"${typeTok.value}"` : "end of input";
294
+ throw new types_1.ParseError(`Expected type keyword (string | number | boolean) after ":" but got ${got}`, pos);
295
+ }
296
+ }
297
+ // Optional default value: `= <literal>`
298
+ if (this.match("ASSIGN")) {
299
+ defaultValue = this.parseLiteral();
300
+ }
301
+ return {
302
+ kind: "QueryStmt",
303
+ name: nameTok.value,
304
+ valueType,
305
+ defaultValue,
306
+ pos: this.tokenPos(kw),
307
+ };
308
+ }
309
+ // -- Table statement -------------------------------------------------------
310
+ /**
311
+ * table <Name> {
312
+ * columns ["Col1", "Col2", ...]
313
+ * row [val1, val2, ...]
314
+ * ...
315
+ * }
316
+ */
317
+ parseTableStmt() {
318
+ const kw = this.expect("table");
319
+ const nameTok = this.expectIdent();
320
+ this.expect("LBRACE");
321
+ // -- columns declaration -----------------------------------------------
322
+ this.expect("columns");
323
+ this.expect("LBRACKET");
324
+ const columns = [];
325
+ if (!this.check("RBRACKET")) {
326
+ columns.push(this.expectString().value);
327
+ while (this.match("COMMA")) {
328
+ // allow trailing comma before ]
329
+ if (this.check("RBRACKET"))
330
+ break;
331
+ columns.push(this.expectString().value);
332
+ }
333
+ }
334
+ this.expect("RBRACKET");
335
+ // -- rows --------------------------------------------------------------
336
+ const rows = [];
337
+ while (this.check("row") && !this.isAtEnd()) {
338
+ rows.push(this.parseTableRow());
339
+ }
340
+ this.expect("RBRACE");
341
+ return {
342
+ kind: "TableStmt",
343
+ name: nameTok.value,
344
+ columns,
345
+ rows,
346
+ pos: this.tokenPos(kw),
347
+ };
348
+ }
349
+ parseTableRow() {
350
+ const kw = this.expect("row");
351
+ this.expect("LBRACKET");
352
+ const cells = [];
353
+ if (!this.check("RBRACKET")) {
354
+ cells.push(this.parseExpression());
355
+ while (this.match("COMMA")) {
356
+ if (this.check("RBRACKET"))
357
+ break;
358
+ cells.push(this.parseExpression());
359
+ }
360
+ }
361
+ this.expect("RBRACKET");
362
+ return { cells, pos: this.tokenPos(kw) };
363
+ }
364
+ // -- Chart statement -------------------------------------------------------
365
+ /**
366
+ * chart <Name> <bar|line|pie|area|scatter> {
367
+ * series "Label" {
368
+ * point x, y
369
+ * ...
370
+ * }
371
+ * ...
372
+ * }
373
+ */
374
+ parseChartStmt() {
375
+ const kw = this.expect("chart");
376
+ const nameTok = this.expectIdent();
377
+ // Chart type keyword
378
+ const typeTok = this.peek();
379
+ const CHART_TYPES = new Set(["bar", "line", "pie", "area", "scatter"]);
380
+ if (!typeTok || !CHART_TYPES.has(typeTok.type ?? "")) {
381
+ const pos = typeTok ? this.tokenPos(typeTok) : this.currentPos();
382
+ const got = typeTok ? `"${typeTok.value}"` : "end of input";
383
+ throw new types_1.ParseError(`Expected chart type (bar | line | pie | area | scatter) but got ${got}`, pos);
384
+ }
385
+ this.advance();
386
+ const chartType = typeTok.value;
387
+ this.expect("LBRACE");
388
+ const seriesList = [];
389
+ while (this.check("series") && !this.isAtEnd()) {
390
+ seriesList.push(this.parseSeriesDecl());
391
+ }
392
+ this.expect("RBRACE");
393
+ return {
394
+ kind: "ChartStmt",
395
+ name: nameTok.value,
396
+ chartType,
397
+ series: seriesList,
398
+ pos: this.tokenPos(kw),
399
+ };
400
+ }
401
+ parseSeriesDecl() {
402
+ const kw = this.expect("series");
403
+ const labelTok = this.expectString();
404
+ this.expect("LBRACE");
405
+ const points = [];
406
+ while (this.check("point") && !this.isAtEnd()) {
407
+ points.push(this.parseChartPoint());
408
+ }
409
+ this.expect("RBRACE");
410
+ return { label: labelTok.value, points, pos: this.tokenPos(kw) };
411
+ }
412
+ parseChartPoint() {
413
+ const kw = this.expect("point");
414
+ const x = this.parseExpression();
415
+ this.expect("COMMA");
416
+ const y = this.parseExpression();
417
+ return { x, y, pos: this.tokenPos(kw) };
418
+ }
267
419
  // ─── Navigation target ────────────────────────────────────────────────────
420
+ /**
421
+ * NavTarget ::= "->" Identifier [ "?" QueryArg { "&" QueryArg } ]
422
+ * QueryArg ::= Identifier "=" Expression
423
+ */
268
424
  parseNavTarget() {
269
425
  const arrowTok = this.expect("ARROW");
270
426
  const targetTok = this.expectIdent();
271
- return { target: targetTok.value, pos: this.tokenPos(arrowTok) };
427
+ let queryArgs;
428
+ // Optional query string: `?key=expr&key2=expr2`
429
+ if (this.match("QUESTION")) {
430
+ queryArgs = [];
431
+ queryArgs.push(this.parseQueryArg());
432
+ while (this.match("AMPERSAND")) {
433
+ queryArgs.push(this.parseQueryArg());
434
+ }
435
+ }
436
+ return {
437
+ target: targetTok.value,
438
+ queryArgs: queryArgs?.length ? queryArgs : undefined,
439
+ pos: this.tokenPos(arrowTok),
440
+ };
441
+ }
442
+ parseQueryArg() {
443
+ const keyTok = this.expectIdent();
444
+ this.expect("ASSIGN");
445
+ const value = this.parseExpression();
446
+ return { key: keyTok.value, value, pos: this.tokenPos(keyTok) };
272
447
  }
273
448
  // ─── Expressions (operator precedence, left-to-right) ────────────────────
274
449
  //
@@ -276,7 +451,8 @@ class Parser {
276
451
  // 1. || (binary OR)
277
452
  // 2. && (binary AND)
278
453
  // 3. == != < > <= >= (comparison)
279
- // 4. primary / unary !
454
+ // 4. + (additive)
455
+ // 5. primary / unary !
280
456
  parseExpression() {
281
457
  return this.parseOr();
282
458
  }
@@ -321,12 +497,12 @@ class Parser {
321
497
  ["GTE", ">="],
322
498
  ]);
323
499
  parseComparison() {
324
- let left = this.parseUnary();
500
+ let left = this.parseAdditive();
325
501
  const tok = this.peek();
326
502
  if (tok && this.COMPARISON_OPS.has(tok.type ?? "")) {
327
503
  const opTok = this.advance();
328
504
  const operator = this.COMPARISON_OPS.get(opTok.type ?? "");
329
- const right = this.parseUnary();
505
+ const right = this.parseAdditive();
330
506
  const expr = {
331
507
  kind: "BinaryExpr",
332
508
  operator,
@@ -338,6 +514,23 @@ class Parser {
338
514
  }
339
515
  return left;
340
516
  }
517
+ /** Handles `+` for expressions like `query.page + 1` in nav query args. */
518
+ parseAdditive() {
519
+ let left = this.parseUnary();
520
+ while (this.check("PLUS")) {
521
+ const opTok = this.advance();
522
+ const right = this.parseUnary();
523
+ const expr = {
524
+ kind: "BinaryExpr",
525
+ operator: "+",
526
+ left,
527
+ right,
528
+ pos: this.tokenPos(opTok),
529
+ };
530
+ left = expr;
531
+ }
532
+ return left;
533
+ }
341
534
  parseUnary() {
342
535
  if (this.check("BANG")) {
343
536
  const bangTok = this.advance();
@@ -390,8 +583,8 @@ class Parser {
390
583
  };
391
584
  return lit;
392
585
  }
393
- // Identifier or member expression (user.role)
394
- if (tok.type === "IDENT") {
586
+ // Identifier or member expression (user.role, query.page, etc.)
587
+ if (tok.type === "IDENT" || tok.type === "query") {
395
588
  this.advance();
396
589
  const base = {
397
590
  kind: "IdentifierExpr",
@@ -413,6 +606,30 @@ class Parser {
413
606
  }
414
607
  throw new types_1.ParseError(`Unexpected token "${tok.value}" in expression`, this.tokenPos(tok));
415
608
  }
609
+ // ─── Literal helper ───────────────────────────────────────────────────────
610
+ /** Parse a bare literal (string, number, boolean). Used in `query` default values. */
611
+ parseLiteral() {
612
+ const tok = this.peek();
613
+ if (!tok) {
614
+ throw new types_1.ParseError("Expected literal but reached end of input", {
615
+ line: 0,
616
+ col: 0,
617
+ });
618
+ }
619
+ if (tok.type === "STRING") {
620
+ this.advance();
621
+ return { kind: "StringLiteral", value: tok.value, pos: this.tokenPos(tok) };
622
+ }
623
+ if (tok.type === "NUMBER") {
624
+ this.advance();
625
+ return { kind: "NumberLiteral", value: parseFloat(tok.value), pos: this.tokenPos(tok) };
626
+ }
627
+ if (tok.type === "true" || tok.type === "false") {
628
+ this.advance();
629
+ return { kind: "BooleanLiteral", value: tok.type === "true", pos: this.tokenPos(tok) };
630
+ }
631
+ throw new types_1.ParseError(`Expected literal (string, number, or boolean) but got "${tok.value}"`, this.tokenPos(tok));
632
+ }
416
633
  // ─── Small helpers ───────────────────────────────────────────────────────
417
634
  /**
418
635
  * Expect an IDENT token (not a keyword).
@@ -434,11 +651,16 @@ class Parser {
434
651
  const tokType = tok.type ?? "";
435
652
  const isIdentLike = tokType === "IDENT" ||
436
653
  // keywords can appear as outcome clause labels (e.g. "success", "error")
437
- // so accept them here
654
+ // so accept them here; also "query" for member access (query.page)
438
655
  [
439
656
  "app", "page", "component", "entry", "use", "header", "text",
440
657
  "button", "link", "field", "input", "submit", "click", "on", "if",
658
+ "query", "string", "number", "boolean",
441
659
  "true", "false", // generally disallowed as ident elsewhere; allowed in outcomes
660
+ // table / chart keywords can appear as names
661
+ "table", "columns", "row",
662
+ "chart", "series", "point",
663
+ "bar", "line", "pie", "area", "scatter",
442
664
  ].includes(tokType);
443
665
  if (!isIdentLike) {
444
666
  throw new types_1.ParseError(`Expected identifier but got "${tok.value}" (${tok.type})`, this.tokenPos(tok));
@@ -1 +1 @@
1
- {"version":3,"file":"parser.js","sourceRoot":"","sources":["../../src/parser.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"parser.js","sourceRoot":"","sources":["../../src/parser.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"semantic.d.ts","sourceRoot":"","sources":["../../src/semantic.ts"],"names":[],"mappings":"AAKA,OAAO,EAOH,KAAK,OAAO,EAEf,MAAM,SAAS,CAAC;AAEjB,MAAM,WAAW,oBAAoB;IACjC,mEAAmE;IACnE,UAAU,CAAC,EAAE,OAAO,CAAC;CACxB;AAED,wBAAgB,cAAc,CAC1B,OAAO,EAAE,OAAO,EAChB,OAAO,GAAE,oBAAyB,GACnC,IAAI,CAGN"}
1
+ {"version":3,"file":"semantic.d.ts","sourceRoot":"","sources":["../../src/semantic.ts"],"names":[],"mappings":"AAKA,OAAO,EAQH,KAAK,OAAO,EAGf,MAAM,SAAS,CAAC;AAEjB,MAAM,WAAW,oBAAoB;IACjC,mEAAmE;IACnE,UAAU,CAAC,EAAE,OAAO,CAAC;CACxB;AAED,wBAAgB,cAAc,CAC1B,OAAO,EAAE,OAAO,EAChB,OAAO,GAAE,oBAAyB,GACnC,IAAI,CAGN"}
@@ -1,7 +1,7 @@
1
1
  "use strict";
2
2
  // ─────────────────────────────────────────────────────────────────────────────
3
3
  // SWAN DSL — Semantic Checker
4
- // Enforces static semantic rules SR-1 through SR-6.
4
+ // Enforces static semantic rules SR-1 through SR-14.
5
5
  // ─────────────────────────────────────────────────────────────────────────────
6
6
  Object.defineProperty(exports, "__esModule", { value: true });
7
7
  exports.checkSemantics = checkSemantics;
@@ -18,17 +18,28 @@ class SemanticChecker {
18
18
  options;
19
19
  pageNames;
20
20
  componentNames;
21
+ /** Map of page name → Set of declared query param names */
22
+ pageQueryParams;
21
23
  constructor(program, options) {
22
24
  this.program = program;
23
25
  this.options = options;
24
26
  this.pageNames = new Set(program.pages.map((p) => p.name));
25
27
  this.componentNames = new Set(program.components.map((c) => c.name));
28
+ this.pageQueryParams = new Map();
29
+ // Pre-build query param sets for SR-8 and SR-9
30
+ for (const page of program.pages) {
31
+ const paramNames = new Set();
32
+ this.pageQueryParams.set(page.name, paramNames);
33
+ }
26
34
  }
27
35
  check() {
28
36
  this.checkSR1andSR2();
29
37
  this.checkSR6Names();
38
+ this.checkSR7QueryInPagesOnly();
39
+ this.checkSR8UniqueQueryKeys();
30
40
  this.collectAndCheckNavTargets();
31
41
  this.checkSR5ComponentCycles();
42
+ this.checkSR10to14TablesAndCharts();
32
43
  if (this.options.strictMode) {
33
44
  this.checkSR4Reachability();
34
45
  }
@@ -77,6 +88,34 @@ class SemanticChecker {
77
88
  for (const comp of this.program.components) {
78
89
  this.checkActionUniqueness(comp.name, comp.body);
79
90
  }
91
+ // Table and chart names must be unique within each scope (page/component)
92
+ for (const page of this.program.pages) {
93
+ this.checkTableChartUniqueness(page.name, page.body);
94
+ }
95
+ for (const comp of this.program.components) {
96
+ this.checkTableChartUniqueness(comp.name, comp.body);
97
+ }
98
+ }
99
+ checkTableChartUniqueness(scopeName, stmts) {
100
+ const tablesSeen = new Set();
101
+ const chartsSeen = new Set();
102
+ for (const stmt of stmts) {
103
+ if (stmt.kind === "TableStmt") {
104
+ if (tablesSeen.has(stmt.name)) {
105
+ throw new types_1.SemanticError("SR-6", `Duplicate table name "${stmt.name}" in scope "${scopeName}"`, stmt.pos);
106
+ }
107
+ tablesSeen.add(stmt.name);
108
+ }
109
+ else if (stmt.kind === "ChartStmt") {
110
+ if (chartsSeen.has(stmt.name)) {
111
+ throw new types_1.SemanticError("SR-6", `Duplicate chart name "${stmt.name}" in scope "${scopeName}"`, stmt.pos);
112
+ }
113
+ chartsSeen.add(stmt.name);
114
+ }
115
+ else if (stmt.kind === "ConditionalStmt") {
116
+ this.checkTableChartUniqueness(scopeName, stmt.body);
117
+ }
118
+ }
80
119
  }
81
120
  collectActions(stmts) {
82
121
  const actions = new Map();
@@ -100,8 +139,52 @@ class SemanticChecker {
100
139
  }
101
140
  }
102
141
  }
142
+ // ─── SR-7 ─────────────────────────────────────────────────────────────────
143
+ // `query` statements are only valid inside page blocks, not components.
144
+ checkSR7QueryInPagesOnly() {
145
+ for (const comp of this.program.components) {
146
+ this.assertNoQueryInStatements(comp.name, comp.body);
147
+ }
148
+ }
149
+ assertNoQueryInStatements(scopeName, stmts) {
150
+ for (const stmt of stmts) {
151
+ if (stmt.kind === "QueryStmt") {
152
+ throw new types_1.SemanticError("SR-7", `"query" statement is not allowed inside component "${scopeName}" — only pages may declare query parameters`, stmt.pos);
153
+ }
154
+ if (stmt.kind === "ConditionalStmt") {
155
+ this.assertNoQueryInStatements(scopeName, stmt.body);
156
+ }
157
+ }
158
+ }
159
+ // ─── SR-8 ─────────────────────────────────────────────────────────────────
160
+ // Query parameter identifiers must be unique within a page.
161
+ checkSR8UniqueQueryKeys() {
162
+ for (const page of this.program.pages) {
163
+ this.checkQueryKeyUniqueness(page);
164
+ }
165
+ }
166
+ checkQueryKeyUniqueness(page) {
167
+ const seen = new Set();
168
+ const paramSet = this.pageQueryParams.get(page.name);
169
+ this.collectQueryKeys(page.body, page.name, seen, paramSet);
170
+ }
171
+ collectQueryKeys(stmts, pageName, seen, paramSet) {
172
+ for (const stmt of stmts) {
173
+ if (stmt.kind === "QueryStmt") {
174
+ if (seen.has(stmt.name)) {
175
+ throw new types_1.SemanticError("SR-8", `Duplicate query parameter "${stmt.name}" in page "${pageName}"`, stmt.pos);
176
+ }
177
+ seen.add(stmt.name);
178
+ paramSet.add(stmt.name);
179
+ }
180
+ if (stmt.kind === "ConditionalStmt") {
181
+ this.collectQueryKeys(stmt.body, pageName, seen, paramSet);
182
+ }
183
+ }
184
+ }
103
185
  // ─── SR-3 ─────────────────────────────────────────────────────────────────
104
186
  // All navigation targets must be pages.
187
+ // Also checks SR-9 (query arg keys must match declared params on target page).
105
188
  collectAndCheckNavTargets() {
106
189
  for (const page of this.program.pages) {
107
190
  this.checkNavInStatements(page.body);
@@ -133,12 +216,22 @@ class SemanticChecker {
133
216
  }
134
217
  }
135
218
  validateNavTarget(nav) {
219
+ // SR-3: target must be a known page
136
220
  if (!this.pageNames.has(nav.target)) {
137
221
  const hint = this.componentNames.has(nav.target)
138
222
  ? ` ("${nav.target}" is a component, not a page)`
139
223
  : ` ("${nav.target}" is not defined)`;
140
224
  throw new types_1.SemanticError("SR-3", `Navigation target "${nav.target}" must be a page${hint}`, nav.pos);
141
225
  }
226
+ // SR-9: each query arg key must match a declared query param on target page
227
+ if (nav.queryArgs && nav.queryArgs.length > 0) {
228
+ const targetParams = this.pageQueryParams.get(nav.target);
229
+ for (const arg of nav.queryArgs) {
230
+ if (!targetParams || !targetParams.has(arg.key)) {
231
+ throw new types_1.SemanticError("SR-9", `Navigation query argument "${arg.key}" is not declared as a query parameter on page "${nav.target}"`, arg.pos);
232
+ }
233
+ }
234
+ }
142
235
  }
143
236
  checkHandlerNav(handler) {
144
237
  for (const outcome of handler.outcomes) {
@@ -206,6 +299,70 @@ class SemanticChecker {
206
299
  }
207
300
  return used;
208
301
  }
302
+ // ─── SR-10 – SR-14 (tables and charts) ────────────────────────────────────
303
+ checkSR10to14TablesAndCharts() {
304
+ const allBodies = [
305
+ ...this.program.pages.map((p) => ({ scopeName: p.name, stmts: p.body })),
306
+ ...this.program.components.map((c) => ({ scopeName: c.name, stmts: c.body })),
307
+ ];
308
+ for (const { scopeName, stmts } of allBodies) {
309
+ this.checkTableChartStmts(scopeName, stmts);
310
+ }
311
+ }
312
+ checkTableChartStmts(scopeName, stmts) {
313
+ for (const stmt of stmts) {
314
+ if (stmt.kind === "TableStmt") {
315
+ this.checkTableStmt(scopeName, stmt);
316
+ }
317
+ else if (stmt.kind === "ChartStmt") {
318
+ this.checkChartStmt(scopeName, stmt);
319
+ }
320
+ else if (stmt.kind === "ConditionalStmt") {
321
+ this.checkTableChartStmts(scopeName, stmt.body);
322
+ }
323
+ }
324
+ }
325
+ /**
326
+ * SR-11: at least one column and one row.
327
+ * SR-10: each row must have exactly as many cells as declared columns.
328
+ */
329
+ checkTableStmt(scopeName, table) {
330
+ // SR-11: must have ≥1 column
331
+ if (table.columns.length === 0) {
332
+ throw new types_1.SemanticError("SR-11", `Table "${table.name}" in "${scopeName}" must declare at least one column`, table.pos);
333
+ }
334
+ // SR-11: must have ≥1 row
335
+ if (table.rows.length === 0) {
336
+ throw new types_1.SemanticError("SR-11", `Table "${table.name}" in "${scopeName}" must have at least one row`, table.pos);
337
+ }
338
+ // SR-10: row cell count must match column count
339
+ for (const row of table.rows) {
340
+ if (row.cells.length !== table.columns.length) {
341
+ throw new types_1.SemanticError("SR-10", `Table "${table.name}" in "${scopeName}": row has ${row.cells.length} cell(s) but ${table.columns.length} column(s) were declared`, row.pos);
342
+ }
343
+ }
344
+ }
345
+ /**
346
+ * SR-12: chart must have ≥1 series.
347
+ * SR-13: each series must have ≥1 point.
348
+ * SR-14: pie chart must have exactly 1 series.
349
+ */
350
+ checkChartStmt(scopeName, chart) {
351
+ // SR-12: must have ≥1 series
352
+ if (chart.series.length === 0) {
353
+ throw new types_1.SemanticError("SR-12", `Chart "${chart.name}" in "${scopeName}" must contain at least one series`, chart.pos);
354
+ }
355
+ // SR-14: pie chart must have exactly 1 series
356
+ if (chart.chartType === "pie" && chart.series.length !== 1) {
357
+ throw new types_1.SemanticError("SR-14", `Pie chart "${chart.name}" in "${scopeName}" must have exactly one series (got ${chart.series.length})`, chart.pos);
358
+ }
359
+ // SR-13: each series must have ≥1 point
360
+ for (const s of chart.series) {
361
+ if (s.points.length === 0) {
362
+ throw new types_1.SemanticError("SR-13", `Series "${s.label}" in chart "${chart.name}" (scope "${scopeName}") must have at least one data point`, s.pos);
363
+ }
364
+ }
365
+ }
209
366
  // ─── SR-4 (strict mode) ───────────────────────────────────────────────────
210
367
  // All pages must be reachable from the entry page.
211
368
  checkSR4Reachability() {
@@ -1 +1 @@
1
- {"version":3,"file":"semantic.js","sourceRoot":"","sources":["../../src/semantic.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"semantic.js","sourceRoot":"","sources":["../../src/semantic.ts"],"names":[],"mappings":"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"}
@@ -23,14 +23,14 @@ export interface IdentifierExpr {
23
23
  name: string;
24
24
  pos: Position;
25
25
  }
26
- /** Dot-access: user.role, session.token, env.name */
26
+ /** Dot-access: user.role, session.token, env.name, query.page */
27
27
  export interface MemberExpr {
28
28
  kind: "MemberExpr";
29
29
  object: IdentifierExpr;
30
30
  member: string;
31
31
  pos: Position;
32
32
  }
33
- export type BinaryOperator = "==" | "!=" | "<" | ">" | "<=" | ">=" | "&&" | "||";
33
+ export type BinaryOperator = "==" | "!=" | "<" | ">" | "<=" | ">=" | "&&" | "||" | "+";
34
34
  export interface BinaryExpr {
35
35
  kind: "BinaryExpr";
36
36
  operator: BinaryOperator;
@@ -45,9 +45,23 @@ export interface UnaryExpr {
45
45
  pos: Position;
46
46
  }
47
47
  export type Expression = IdentifierExpr | MemberExpr | Literal | BinaryExpr | UnaryExpr;
48
+ /** The type keyword used in a query declaration: `query key : <QueryType>` */
49
+ export type QueryType = "string" | "number" | "boolean";
50
+ /**
51
+ * A single query argument passed in a navigation target's query string.
52
+ * e.g. `-> Search?q="hello"&page=2` → [{ key:"q", value:StringLiteral },
53
+ * { key:"page", value:NumberLiteral }]
54
+ */
55
+ export interface QueryArg {
56
+ key: string;
57
+ value: Expression;
58
+ pos: Position;
59
+ }
48
60
  export interface NavTarget {
49
61
  /** The page identifier this navigation points to */
50
62
  target: string;
63
+ /** Optional inline query args: `-> Page?key=expr&key2=expr2` */
64
+ queryArgs?: QueryArg[];
51
65
  pos: Position;
52
66
  }
53
67
  export interface OutcomeClause {
@@ -118,7 +132,103 @@ export interface ConditionalStmt {
118
132
  body: Statement[];
119
133
  pos: Position;
120
134
  }
121
- export type Statement = HeaderStmt | TextStmt | ButtonStmt | LinkStmt | FieldStmt | InputStmt | UseStmt | SubmitStmt | ClickStmt | HandlerStmt | ConditionalStmt;
135
+ /**
136
+ * Declares a URL query parameter accepted by a page.
137
+ *
138
+ * Syntax: `query <name> [: <type>] [= <default>]`
139
+ *
140
+ * Example: `query page : number = 1`
141
+ *
142
+ * Only valid inside `page` blocks (enforced by SR-7).
143
+ */
144
+ export interface QueryStmt {
145
+ kind: "QueryStmt";
146
+ /** The query parameter key (maps to `?key=value` in the URL) */
147
+ name: string;
148
+ /** Optional type annotation */
149
+ valueType?: QueryType;
150
+ /** Optional default value when the parameter is absent */
151
+ defaultValue?: Literal;
152
+ pos: Position;
153
+ }
154
+ /**
155
+ * A single row inside a `table` block.
156
+ * The number of cells must equal the number of declared columns (SR-10).
157
+ */
158
+ export interface TableRow {
159
+ cells: Expression[];
160
+ pos: Position;
161
+ }
162
+ /**
163
+ * Renders tabular data with named columns.
164
+ *
165
+ * Syntax:
166
+ * ```dsl
167
+ * table <Name> {
168
+ * columns ["Col1", "Col2"]
169
+ * row [val1, val2 ]
170
+ * }
171
+ * ```
172
+ *
173
+ * Semantic rules: SR-10, SR-11.
174
+ */
175
+ export interface TableStmt {
176
+ kind: "TableStmt";
177
+ /** Unique table name within its scope */
178
+ name: string;
179
+ /** Ordered column header labels */
180
+ columns: string[];
181
+ /** Data rows — each must have the same number of cells as `columns` */
182
+ rows: TableRow[];
183
+ pos: Position;
184
+ }
185
+ /** Visual style of a chart (§ 6.8). */
186
+ export type ChartType = "bar" | "line" | "pie" | "area" | "scatter";
187
+ /**
188
+ * A single data point inside a `series` block.
189
+ *
190
+ * - `x` — category label (string) or numeric position
191
+ * - `y` — numeric value
192
+ */
193
+ export interface ChartPoint {
194
+ x: Expression;
195
+ y: Expression;
196
+ pos: Position;
197
+ }
198
+ /**
199
+ * A named series of data points inside a `chart` block.
200
+ * Must have at least one point (SR-13).
201
+ */
202
+ export interface ChartSeries {
203
+ /** Display label for this series */
204
+ label: string;
205
+ points: ChartPoint[];
206
+ pos: Position;
207
+ }
208
+ /**
209
+ * Renders a visual chart.
210
+ *
211
+ * Syntax:
212
+ * ```dsl
213
+ * chart <Name> <bar|line|pie|area|scatter> {
214
+ * series "Label" {
215
+ * point x, y
216
+ * }
217
+ * }
218
+ * ```
219
+ *
220
+ * Semantic rules: SR-12, SR-13, SR-14.
221
+ */
222
+ export interface ChartStmt {
223
+ kind: "ChartStmt";
224
+ /** Unique chart name within its scope */
225
+ name: string;
226
+ chartType: ChartType;
227
+ /** At least one series is required (SR-12) */
228
+ series: ChartSeries[];
229
+ pos: Position;
230
+ }
231
+ export type Statement = HeaderStmt | TextStmt | ButtonStmt | LinkStmt | FieldStmt | InputStmt | UseStmt | SubmitStmt | ClickStmt | HandlerStmt | ConditionalStmt | QueryStmt | TableStmt | ChartStmt;
122
232
  export interface AppDecl {
123
233
  kind: "AppDecl";
124
234
  name: string;
@@ -147,7 +257,7 @@ export declare class ParseError extends Error {
147
257
  readonly pos: Position;
148
258
  constructor(message: string, pos: Position);
149
259
  }
150
- export type SemanticRuleCode = "SR-1" | "SR-2" | "SR-3" | "SR-4" | "SR-5" | "SR-6";
260
+ export type SemanticRuleCode = "SR-1" | "SR-2" | "SR-3" | "SR-4" | "SR-5" | "SR-6" | "SR-7" | "SR-8" | "SR-9" | "SR-10" | "SR-11" | "SR-12" | "SR-13" | "SR-14";
151
261
  export declare class SemanticError extends Error {
152
262
  readonly rule: SemanticRuleCode;
153
263
  readonly pos?: Position | undefined;
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/types.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/types.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/types.ts"],"names":[],"mappings":";AAAA,gFAAgF;AAChF,yCAAyC;AACzC,gFAAgF;;;AAwOhF,8EAA8E;AAC9E,cAAc;AACd,8EAA8E;AAE9E,MAAa,UAAW,SAAQ,KAAK;IAGb;IAFpB,YACI,OAAe,EACC,GAAa;QAE7B,KAAK,CAAC,iBAAiB,GAAG,CAAC,IAAI,IAAI,GAAG,CAAC,GAAG,MAAM,OAAO,EAAE,CAAC,CAAC;QAF3C,QAAG,GAAH,GAAG,CAAU;QAG7B,IAAI,CAAC,IAAI,GAAG,YAAY,CAAC;IAC7B,CAAC;CACJ;AARD,gCAQC;AAUD,MAAa,aAAc,SAAQ,KAAK;IAEhB;IAEA;IAHpB,YACoB,IAAsB,EACtC,OAAe,EACC,GAAc;QAE9B,MAAM,GAAG,GAAG,GAAG,CAAC,CAAC,CAAC,OAAO,GAAG,CAAC,IAAI,IAAI,GAAG,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QACpD,KAAK,CAAC,kBAAkB,IAAI,IAAI,GAAG,MAAM,OAAO,EAAE,CAAC,CAAC;QALpC,SAAI,GAAJ,IAAI,CAAkB;QAEtB,QAAG,GAAH,GAAG,CAAW;QAI9B,IAAI,CAAC,IAAI,GAAG,eAAe,CAAC;IAChC,CAAC;CACJ;AAVD,sCAUC"}
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/types.ts"],"names":[],"mappings":";AAAA,gFAAgF;AAChF,yCAAyC;AACzC,gFAAgF;;;AA+WhF,8EAA8E;AAC9E,cAAc;AACd,8EAA8E;AAE9E,MAAa,UAAW,SAAQ,KAAK;IAGb;IAFpB,YACI,OAAe,EACC,GAAa;QAE7B,KAAK,CAAC,iBAAiB,GAAG,CAAC,IAAI,IAAI,GAAG,CAAC,GAAG,MAAM,OAAO,EAAE,CAAC,CAAC;QAF3C,QAAG,GAAH,GAAG,CAAU;QAG7B,IAAI,CAAC,IAAI,GAAG,YAAY,CAAC;IAC7B,CAAC;CACJ;AARD,gCAQC;AAoBD,MAAa,aAAc,SAAQ,KAAK;IAEhB;IAEA;IAHpB,YACoB,IAAsB,EACtC,OAAe,EACC,GAAc;QAE9B,MAAM,GAAG,GAAG,GAAG,CAAC,CAAC,CAAC,OAAO,GAAG,CAAC,IAAI,IAAI,GAAG,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QACpD,KAAK,CAAC,kBAAkB,IAAI,IAAI,GAAG,MAAM,OAAO,EAAE,CAAC,CAAC;QALpC,SAAI,GAAJ,IAAI,CAAkB;QAEtB,QAAG,GAAH,GAAG,CAAW;QAI9B,IAAI,CAAC,IAAI,GAAG,eAAe,CAAC;IAChC,CAAC;CACJ;AAVD,sCAUC"}
package/dist/test.js CHANGED
@@ -9,6 +9,8 @@ app MyApp {
9
9
  page Home {
10
10
  header "Welcome"
11
11
  button "Log in" -> Login
12
+ button "Search" -> Search?q=""&page=1
13
+ button "Dashboard" -> Dashboard
12
14
  }
13
15
 
14
16
  component LoginForm {
@@ -19,7 +21,7 @@ component LoginForm {
19
21
 
20
22
  on auth {
21
23
  success -> Dashboard
22
- error -> LoginError
24
+ error -> LoginError
23
25
  }
24
26
  }
25
27
 
@@ -37,6 +39,47 @@ page Dashboard {
37
39
  header "Dashboard"
38
40
  text "Hello!"
39
41
  button "Logout" -> Home
42
+ button "Search Items" -> Search?q=""&page=1
43
+
44
+ table RecentUsers {
45
+ columns ["Name", "Role", "Last Seen"]
46
+ row ["Alice", "Admin", "2 mins ago"]
47
+ row ["Bob", "Viewer", "1 hour ago"]
48
+ row ["Carol", "Editor", "Yesterday"]
49
+ }
50
+
51
+ chart MonthlyLogins line {
52
+ series "Logins" {
53
+ point "Jan", 320
54
+ point "Feb", 410
55
+ point "Mar", 390
56
+ point "Apr", 520
57
+ }
58
+ }
59
+
60
+ chart TrafficSource pie {
61
+ series "Sources" {
62
+ point "Organic", 58
63
+ point "Paid", 27
64
+ point "Direct", 15
65
+ }
66
+ }
67
+ }
68
+
69
+ page Search {
70
+ query q : string = ""
71
+ query page : number = 1
72
+ query active : boolean
73
+
74
+ header "Search"
75
+ text "Showing results"
76
+
77
+ if query.active == true {
78
+ text "Showing active items only"
79
+ }
80
+
81
+ button "Next" -> Search?q=query.q&page=query.page+1
82
+ button "Home" -> Home
40
83
  }
41
84
  `.trim();
42
85
  async function main() {
package/dist/test.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"test.js","sourceRoot":"","sources":["../test.ts"],"names":[],"mappings":";;AAAA,uCAAoC;AAEpC,MAAM,WAAW,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAqCnB,CAAC,IAAI,EAAE,CAAC;AAET,KAAK,UAAU,IAAI;IACjB,MAAM,OAAO,GAAG,IAAA,aAAK,EAAC,WAAW,CAAC,CAAC;IACnC,OAAO,CAAC,GAAG,CAAC,mBAAmB,GAAG,IAAI,CAAC,SAAS,CAAC,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC;AACtE,CAAC;AAED,8DAA8D"}
1
+ {"version":3,"file":"test.js","sourceRoot":"","sources":["../test.ts"],"names":[],"mappings":";;AAAA,uCAAoC;AAEpC,MAAM,WAAW,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAgFnB,CAAC,IAAI,EAAE,CAAC;AAET,KAAK,UAAU,IAAI;IACjB,MAAM,OAAO,GAAG,IAAA,aAAK,EAAC,WAAW,CAAC,CAAC;IACnC,OAAO,CAAC,GAAG,CAAC,mBAAmB,GAAG,IAAI,CAAC,SAAS,CAAC,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC;AACtE,CAAC;AAED,8DAA8D"}
package/package.json CHANGED
@@ -1,11 +1,11 @@
1
1
  {
2
2
  "name": "@naiv/swan-dsl",
3
- "version": "0.0.1",
3
+ "version": "0.0.3",
4
4
  "description": "SWAN DSL Parser",
5
5
  "main": "dist/src/index.js",
6
6
  "scripts": {
7
7
  "build": "rm -rf dist && tsc",
8
- "test": "node dist"
8
+ "test": "node dist/test"
9
9
  },
10
10
  "publishConfig": {
11
11
  "access": "public"