Skip to content

Commit c81eef1

Browse files
committed
Completed basic version of updated parser. Tested CircomTemplateInputsVisitor
1 parent fb435e0 commit c81eef1

15 files changed

+969
-474
lines changed

circom-g4-grammar

src/generated/CircomParser.ts

Lines changed: 68 additions & 68 deletions
Original file line numberDiff line numberDiff line change
@@ -1865,74 +1865,74 @@ export default class CircomParser extends Parser {
18651865
this._errHandler.sync(this);
18661866
switch (this._interp.adaptivePredict(this._input, 39, this._ctx)) {
18671867
case 1:
1868-
localctx = new SubsLeftAssignmetContext(this, localctx);
1868+
localctx = new SubsLeftAssignmentContext(this, localctx);
18691869
this.enterOuterAlt(localctx, 1);
18701870
{
18711871
this.state = 392;
1872-
(localctx as SubsLeftAssignmetContext)._lhs = this.expression(0);
1872+
(localctx as SubsLeftAssignmentContext)._lhs = this.expression(0);
18731873
this.state = 393;
1874-
(localctx as SubsLeftAssignmetContext)._op = this._input.LT(1);
1874+
(localctx as SubsLeftAssignmentContext)._op = this._input.LT(1);
18751875
_la = this._input.LA(1);
18761876
if (
18771877
!(
18781878
((_la - 40) & ~0x1f) === 0 &&
18791879
((1 << (_la - 40)) & 134217731) !== 0
18801880
)
18811881
) {
1882-
(localctx as SubsLeftAssignmetContext)._op =
1882+
(localctx as SubsLeftAssignmentContext)._op =
18831883
this._errHandler.recoverInline(this);
18841884
} else {
18851885
this._errHandler.reportMatch(this);
18861886
this.consume();
18871887
}
18881888
this.state = 394;
1889-
(localctx as SubsLeftAssignmetContext)._rhs = this.expression(0);
1889+
(localctx as SubsLeftAssignmentContext)._rhs = this.expression(0);
18901890
}
18911891
break;
18921892
case 2:
1893-
localctx = new SubsRightSimpleAssignmetContext(this, localctx);
1893+
localctx = new SubsRightSimpleAssignmentContext(this, localctx);
18941894
this.enterOuterAlt(localctx, 2);
18951895
{
18961896
this.state = 396;
1897-
(localctx as SubsRightSimpleAssignmetContext)._lhs =
1897+
(localctx as SubsRightSimpleAssignmentContext)._lhs =
18981898
this.expression(0);
18991899
this.state = 397;
1900-
(localctx as SubsRightSimpleAssignmetContext)._op = this.match(
1900+
(localctx as SubsRightSimpleAssignmentContext)._op = this.match(
19011901
CircomParser.RIGHT_ASSIGNMENT,
19021902
);
19031903
this.state = 398;
1904-
(localctx as SubsRightSimpleAssignmetContext)._variable =
1904+
(localctx as SubsRightSimpleAssignmentContext)._variable =
19051905
this.expression(0);
19061906
}
19071907
break;
19081908
case 3:
1909-
localctx = new SubsRightConstrAssignmetContext(this, localctx);
1909+
localctx = new SubsRightConstrAssignmentContext(this, localctx);
19101910
this.enterOuterAlt(localctx, 3);
19111911
{
19121912
this.state = 400;
1913-
(localctx as SubsRightConstrAssignmetContext)._lhs =
1913+
(localctx as SubsRightConstrAssignmentContext)._lhs =
19141914
this.expression(0);
19151915
this.state = 401;
1916-
(localctx as SubsRightConstrAssignmetContext)._op = this.match(
1916+
(localctx as SubsRightConstrAssignmentContext)._op = this.match(
19171917
CircomParser.RIGHT_CONSTRAINT,
19181918
);
19191919
this.state = 402;
1920-
(localctx as SubsRightConstrAssignmetContext)._variable =
1920+
(localctx as SubsRightConstrAssignmentContext)._variable =
19211921
this.expression(0);
19221922
}
19231923
break;
19241924
case 4:
1925-
localctx = new SubsAssignmetWithOperationContext(this, localctx);
1925+
localctx = new SubsAssignmentWithOperationContext(this, localctx);
19261926
this.enterOuterAlt(localctx, 4);
19271927
{
19281928
this.state = 404;
19291929
this.identifierStatement();
19301930
this.state = 405;
1931-
(localctx as SubsAssignmetWithOperationContext)._op = this.match(
1931+
(localctx as SubsAssignmentWithOperationContext)._op = this.match(
19321932
CircomParser.ASSIGNMENT_WITH_OP,
19331933
);
19341934
this.state = 406;
1935-
(localctx as SubsAssignmetWithOperationContext)._rhs =
1935+
(localctx as SubsAssignmentWithOperationContext)._rhs =
19361936
this.expression(0);
19371937
}
19381938
break;
@@ -5416,7 +5416,7 @@ export class SubstitutionsContext extends ParserRuleContext {
54165416
super.copyFrom(ctx);
54175417
}
54185418
}
5419-
export class SubsLeftAssignmetContext extends SubstitutionsContext {
5419+
export class SubsLeftAssignmentContext extends SubstitutionsContext {
54205420
public _lhs!: ExpressionContext;
54215421
public _op!: Token;
54225422
public _rhs!: ExpressionContext;
@@ -5440,25 +5440,25 @@ export class SubsLeftAssignmetContext extends SubstitutionsContext {
54405440
return this.getToken(CircomParser.LEFT_CONSTRAINT, 0);
54415441
}
54425442
public enterRule(listener: CircomParserListener): void {
5443-
if (listener.enterSubsLeftAssignmet) {
5444-
listener.enterSubsLeftAssignmet(this);
5443+
if (listener.enterSubsLeftAssignment) {
5444+
listener.enterSubsLeftAssignment(this);
54455445
}
54465446
}
54475447
public exitRule(listener: CircomParserListener): void {
5448-
if (listener.exitSubsLeftAssignmet) {
5449-
listener.exitSubsLeftAssignmet(this);
5448+
if (listener.exitSubsLeftAssignment) {
5449+
listener.exitSubsLeftAssignment(this);
54505450
}
54515451
}
54525452
// @Override
54535453
public accept<Result>(visitor: CircomParserVisitor<Result>): Result {
5454-
if (visitor.visitSubsLeftAssignmet) {
5455-
return visitor.visitSubsLeftAssignmet(this);
5454+
if (visitor.visitSubsLeftAssignment) {
5455+
return visitor.visitSubsLeftAssignment(this);
54565456
} else {
54575457
return visitor.visitChildren(this);
54585458
}
54595459
}
54605460
}
5461-
export class SubsRightConstrAssignmetContext extends SubstitutionsContext {
5461+
export class SubsRightConstrAssignmentContext extends SubstitutionsContext {
54625462
public _lhs!: ExpressionContext;
54635463
public _op!: Token;
54645464
public _variable!: ExpressionContext;
@@ -5476,94 +5476,94 @@ export class SubsRightConstrAssignmetContext extends SubstitutionsContext {
54765476
return this.getToken(CircomParser.RIGHT_CONSTRAINT, 0);
54775477
}
54785478
public enterRule(listener: CircomParserListener): void {
5479-
if (listener.enterSubsRightConstrAssignmet) {
5480-
listener.enterSubsRightConstrAssignmet(this);
5479+
if (listener.enterSubsRightConstrAssignment) {
5480+
listener.enterSubsRightConstrAssignment(this);
54815481
}
54825482
}
54835483
public exitRule(listener: CircomParserListener): void {
5484-
if (listener.exitSubsRightConstrAssignmet) {
5485-
listener.exitSubsRightConstrAssignmet(this);
5484+
if (listener.exitSubsRightConstrAssignment) {
5485+
listener.exitSubsRightConstrAssignment(this);
54865486
}
54875487
}
54885488
// @Override
54895489
public accept<Result>(visitor: CircomParserVisitor<Result>): Result {
5490-
if (visitor.visitSubsRightConstrAssignmet) {
5491-
return visitor.visitSubsRightConstrAssignmet(this);
5490+
if (visitor.visitSubsRightConstrAssignment) {
5491+
return visitor.visitSubsRightConstrAssignment(this);
54925492
} else {
54935493
return visitor.visitChildren(this);
54945494
}
54955495
}
54965496
}
5497-
export class SubsInvalidIcnDecOperationContext extends SubstitutionsContext {
5497+
export class SubsRightSimpleAssignmentContext extends SubstitutionsContext {
5498+
public _lhs!: ExpressionContext;
5499+
public _op!: Token;
5500+
public _variable!: ExpressionContext;
54985501
constructor(parser: CircomParser, ctx: SubstitutionsContext) {
54995502
super(parser, ctx.parentCtx, ctx.invokingState);
55005503
super.copyFrom(ctx);
55015504
}
5502-
public SELF_OP(): TerminalNode {
5503-
return this.getToken(CircomParser.SELF_OP, 0);
5505+
public expression_list(): ExpressionContext[] {
5506+
return this.getTypedRuleContexts(ExpressionContext) as ExpressionContext[];
55045507
}
5505-
public identifierStatement(): IdentifierStatementContext {
5506-
return this.getTypedRuleContext(
5507-
IdentifierStatementContext,
5508-
0,
5509-
) as IdentifierStatementContext;
5508+
public expression(i: number): ExpressionContext {
5509+
return this.getTypedRuleContext(ExpressionContext, i) as ExpressionContext;
5510+
}
5511+
public RIGHT_ASSIGNMENT(): TerminalNode {
5512+
return this.getToken(CircomParser.RIGHT_ASSIGNMENT, 0);
55105513
}
55115514
public enterRule(listener: CircomParserListener): void {
5512-
if (listener.enterSubsInvalidIcnDecOperation) {
5513-
listener.enterSubsInvalidIcnDecOperation(this);
5515+
if (listener.enterSubsRightSimpleAssignment) {
5516+
listener.enterSubsRightSimpleAssignment(this);
55145517
}
55155518
}
55165519
public exitRule(listener: CircomParserListener): void {
5517-
if (listener.exitSubsInvalidIcnDecOperation) {
5518-
listener.exitSubsInvalidIcnDecOperation(this);
5520+
if (listener.exitSubsRightSimpleAssignment) {
5521+
listener.exitSubsRightSimpleAssignment(this);
55195522
}
55205523
}
55215524
// @Override
55225525
public accept<Result>(visitor: CircomParserVisitor<Result>): Result {
5523-
if (visitor.visitSubsInvalidIcnDecOperation) {
5524-
return visitor.visitSubsInvalidIcnDecOperation(this);
5526+
if (visitor.visitSubsRightSimpleAssignment) {
5527+
return visitor.visitSubsRightSimpleAssignment(this);
55255528
} else {
55265529
return visitor.visitChildren(this);
55275530
}
55285531
}
55295532
}
5530-
export class SubsRightSimpleAssignmetContext extends SubstitutionsContext {
5531-
public _lhs!: ExpressionContext;
5532-
public _op!: Token;
5533-
public _variable!: ExpressionContext;
5533+
export class SubsInvalidIcnDecOperationContext extends SubstitutionsContext {
55345534
constructor(parser: CircomParser, ctx: SubstitutionsContext) {
55355535
super(parser, ctx.parentCtx, ctx.invokingState);
55365536
super.copyFrom(ctx);
55375537
}
5538-
public expression_list(): ExpressionContext[] {
5539-
return this.getTypedRuleContexts(ExpressionContext) as ExpressionContext[];
5540-
}
5541-
public expression(i: number): ExpressionContext {
5542-
return this.getTypedRuleContext(ExpressionContext, i) as ExpressionContext;
5538+
public SELF_OP(): TerminalNode {
5539+
return this.getToken(CircomParser.SELF_OP, 0);
55435540
}
5544-
public RIGHT_ASSIGNMENT(): TerminalNode {
5545-
return this.getToken(CircomParser.RIGHT_ASSIGNMENT, 0);
5541+
public identifierStatement(): IdentifierStatementContext {
5542+
return this.getTypedRuleContext(
5543+
IdentifierStatementContext,
5544+
0,
5545+
) as IdentifierStatementContext;
55465546
}
55475547
public enterRule(listener: CircomParserListener): void {
5548-
if (listener.enterSubsRightSimpleAssignmet) {
5549-
listener.enterSubsRightSimpleAssignmet(this);
5548+
if (listener.enterSubsInvalidIcnDecOperation) {
5549+
listener.enterSubsInvalidIcnDecOperation(this);
55505550
}
55515551
}
55525552
public exitRule(listener: CircomParserListener): void {
5553-
if (listener.exitSubsRightSimpleAssignmet) {
5554-
listener.exitSubsRightSimpleAssignmet(this);
5553+
if (listener.exitSubsInvalidIcnDecOperation) {
5554+
listener.exitSubsInvalidIcnDecOperation(this);
55555555
}
55565556
}
55575557
// @Override
55585558
public accept<Result>(visitor: CircomParserVisitor<Result>): Result {
5559-
if (visitor.visitSubsRightSimpleAssignmet) {
5560-
return visitor.visitSubsRightSimpleAssignmet(this);
5559+
if (visitor.visitSubsInvalidIcnDecOperation) {
5560+
return visitor.visitSubsInvalidIcnDecOperation(this);
55615561
} else {
55625562
return visitor.visitChildren(this);
55635563
}
55645564
}
55655565
}
5566-
export class SubsAssignmetWithOperationContext extends SubstitutionsContext {
5566+
export class SubsAssignmentWithOperationContext extends SubstitutionsContext {
55675567
public _op!: Token;
55685568
public _rhs!: ExpressionContext;
55695569
constructor(parser: CircomParser, ctx: SubstitutionsContext) {
@@ -5583,19 +5583,19 @@ export class SubsAssignmetWithOperationContext extends SubstitutionsContext {
55835583
return this.getTypedRuleContext(ExpressionContext, 0) as ExpressionContext;
55845584
}
55855585
public enterRule(listener: CircomParserListener): void {
5586-
if (listener.enterSubsAssignmetWithOperation) {
5587-
listener.enterSubsAssignmetWithOperation(this);
5586+
if (listener.enterSubsAssignmentWithOperation) {
5587+
listener.enterSubsAssignmentWithOperation(this);
55885588
}
55895589
}
55905590
public exitRule(listener: CircomParserListener): void {
5591-
if (listener.exitSubsAssignmetWithOperation) {
5592-
listener.exitSubsAssignmetWithOperation(this);
5591+
if (listener.exitSubsAssignmentWithOperation) {
5592+
listener.exitSubsAssignmentWithOperation(this);
55935593
}
55945594
}
55955595
// @Override
55965596
public accept<Result>(visitor: CircomParserVisitor<Result>): Result {
5597-
if (visitor.visitSubsAssignmetWithOperation) {
5598-
return visitor.visitSubsAssignmetWithOperation(this);
5597+
if (visitor.visitSubsAssignmentWithOperation) {
5598+
return visitor.visitSubsAssignmentWithOperation(this);
55995599
} else {
56005600
return visitor.visitChildren(this);
56015601
}

src/generated/CircomParserListener.ts

Lines changed: 28 additions & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -38,10 +38,10 @@ import { RStatementReturnContext } from "./CircomParser";
3838
import { CycleForWithDeclarationContext } from "./CircomParser";
3939
import { CycleForWithoutDeclarationContext } from "./CircomParser";
4040
import { CycleWhileContext } from "./CircomParser";
41-
import { SubsLeftAssignmetContext } from "./CircomParser";
42-
import { SubsRightSimpleAssignmetContext } from "./CircomParser";
43-
import { SubsRightConstrAssignmetContext } from "./CircomParser";
44-
import { SubsAssignmetWithOperationContext } from "./CircomParser";
41+
import { SubsLeftAssignmentContext } from "./CircomParser";
42+
import { SubsRightSimpleAssignmentContext } from "./CircomParser";
43+
import { SubsRightConstrAssignmentContext } from "./CircomParser";
44+
import { SubsAssignmentWithOperationContext } from "./CircomParser";
4545
import { SubsIcnDecOperationContext } from "./CircomParser";
4646
import { SubsInvalidIcnDecOperationContext } from "./CircomParser";
4747
import { ExpressionListContext } from "./CircomParser";
@@ -479,60 +479,64 @@ export default class CircomParserListener extends ParseTreeListener {
479479
*/
480480
exitCycleWhile?: (ctx: CycleWhileContext) => void;
481481
/**
482-
* Enter a parse tree produced by the `SubsLeftAssignmet`
482+
* Enter a parse tree produced by the `SubsLeftAssignment`
483483
* labeled alternative in `CircomParser.substitutions`.
484484
* @param ctx the parse tree
485485
*/
486-
enterSubsLeftAssignmet?: (ctx: SubsLeftAssignmetContext) => void;
486+
enterSubsLeftAssignment?: (ctx: SubsLeftAssignmentContext) => void;
487487
/**
488-
* Exit a parse tree produced by the `SubsLeftAssignmet`
488+
* Exit a parse tree produced by the `SubsLeftAssignment`
489489
* labeled alternative in `CircomParser.substitutions`.
490490
* @param ctx the parse tree
491491
*/
492-
exitSubsLeftAssignmet?: (ctx: SubsLeftAssignmetContext) => void;
492+
exitSubsLeftAssignment?: (ctx: SubsLeftAssignmentContext) => void;
493493
/**
494-
* Enter a parse tree produced by the `SubsRightSimpleAssignmet`
494+
* Enter a parse tree produced by the `SubsRightSimpleAssignment`
495495
* labeled alternative in `CircomParser.substitutions`.
496496
* @param ctx the parse tree
497497
*/
498-
enterSubsRightSimpleAssignmet?: (
499-
ctx: SubsRightSimpleAssignmetContext,
498+
enterSubsRightSimpleAssignment?: (
499+
ctx: SubsRightSimpleAssignmentContext,
500500
) => void;
501501
/**
502-
* Exit a parse tree produced by the `SubsRightSimpleAssignmet`
502+
* Exit a parse tree produced by the `SubsRightSimpleAssignment`
503503
* labeled alternative in `CircomParser.substitutions`.
504504
* @param ctx the parse tree
505505
*/
506-
exitSubsRightSimpleAssignmet?: (ctx: SubsRightSimpleAssignmetContext) => void;
506+
exitSubsRightSimpleAssignment?: (
507+
ctx: SubsRightSimpleAssignmentContext,
508+
) => void;
507509
/**
508-
* Enter a parse tree produced by the `SubsRightConstrAssignmet`
510+
* Enter a parse tree produced by the `SubsRightConstrAssignment`
509511
* labeled alternative in `CircomParser.substitutions`.
510512
* @param ctx the parse tree
511513
*/
512-
enterSubsRightConstrAssignmet?: (
513-
ctx: SubsRightConstrAssignmetContext,
514+
enterSubsRightConstrAssignment?: (
515+
ctx: SubsRightConstrAssignmentContext,
514516
) => void;
515517
/**
516-
* Exit a parse tree produced by the `SubsRightConstrAssignmet`
518+
* Exit a parse tree produced by the `SubsRightConstrAssignment`
517519
* labeled alternative in `CircomParser.substitutions`.
518520
* @param ctx the parse tree
519521
*/
520-
exitSubsRightConstrAssignmet?: (ctx: SubsRightConstrAssignmetContext) => void;
522+
exitSubsRightConstrAssignment?: (
523+
ctx: SubsRightConstrAssignmentContext,
524+
) => void;
521525
/**
522-
* Enter a parse tree produced by the `SubsAssignmetWithOperation`
526+
* Enter a parse tree produced by the `SubsAssignmentWithOperation`
523527
* labeled alternative in `CircomParser.substitutions`.
524528
* @param ctx the parse tree
525529
*/
526-
enterSubsAssignmetWithOperation?: (
527-
ctx: SubsAssignmetWithOperationContext,
530+
enterSubsAssignmentWithOperation?: (
531+
ctx: SubsAssignmentWithOperationContext,
528532
) => void;
529533
/**
530-
* Exit a parse tree produced by the `SubsAssignmetWithOperation`
534+
* Exit a parse tree produced by the `SubsAssignmentWithOperation`
531535
* labeled alternative in `CircomParser.substitutions`.
532536
* @param ctx the parse tree
533537
*/
534-
exitSubsAssignmetWithOperation?: (
535-
ctx: SubsAssignmetWithOperationContext,
538+
exitSubsAssignmentWithOperation?: (
539+
ctx: SubsAssignmentWithOperationContext,
536540
) => void;
537541
/**
538542
* Enter a parse tree produced by the `SubsIcnDecOperation`

0 commit comments

Comments
 (0)