Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 2 additions & 2 deletions ALFA/ALFA.g4
Original file line number Diff line number Diff line change
Expand Up @@ -14,8 +14,8 @@ args: arg (',' arg)*;

arg: NUM | ID;

type: 'int' | 'rect' ;
type: 'int' | 'rect';

ID: [a-zA-Z_][a-zA-Z0-9_]*;
NUM: '0'| '-'?[1-9][0-9]* ;
NUM: '0'| '-'?[1-9][0-9]*;
WS: [ \t\r\n]+ -> skip;
45 changes: 45 additions & 0 deletions ALFA/src/antlr/ALFA/ALFA.interp
Original file line number Diff line number Diff line change
@@ -0,0 +1,45 @@
token literal names:
null
';'
'='
'('
')'
'createRect'
'move'
'wait'
','
'int'
'rect'
null
null
null

token symbolic names:
null
null
null
null
null
null
null
null
null
null
null
ID
NUM
WS

rule names:
program
statement
varDcl
funcCall
builtIns
args
arg
type


atn:
[4, 1, 13, 58, 2, 0, 7, 0, 2, 1, 7, 1, 2, 2, 7, 2, 2, 3, 7, 3, 2, 4, 7, 4, 2, 5, 7, 5, 2, 6, 7, 6, 2, 7, 7, 7, 1, 0, 4, 0, 18, 8, 0, 11, 0, 12, 0, 19, 1, 0, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3, 1, 31, 8, 1, 1, 2, 1, 2, 1, 2, 1, 2, 3, 2, 37, 8, 2, 1, 3, 1, 3, 1, 3, 1, 3, 1, 3, 1, 4, 1, 4, 1, 5, 1, 5, 1, 5, 5, 5, 49, 8, 5, 10, 5, 12, 5, 52, 9, 5, 1, 6, 1, 6, 1, 7, 1, 7, 1, 7, 0, 0, 8, 0, 2, 4, 6, 8, 10, 12, 14, 0, 3, 1, 0, 5, 7, 1, 0, 11, 12, 1, 0, 9, 10, 53, 0, 17, 1, 0, 0, 0, 2, 30, 1, 0, 0, 0, 4, 32, 1, 0, 0, 0, 6, 38, 1, 0, 0, 0, 8, 43, 1, 0, 0, 0, 10, 45, 1, 0, 0, 0, 12, 53, 1, 0, 0, 0, 14, 55, 1, 0, 0, 0, 16, 18, 3, 2, 1, 0, 17, 16, 1, 0, 0, 0, 18, 19, 1, 0, 0, 0, 19, 17, 1, 0, 0, 0, 19, 20, 1, 0, 0, 0, 20, 21, 1, 0, 0, 0, 21, 22, 5, 0, 0, 1, 22, 1, 1, 0, 0, 0, 23, 24, 3, 14, 7, 0, 24, 25, 3, 4, 2, 0, 25, 26, 5, 1, 0, 0, 26, 31, 1, 0, 0, 0, 27, 28, 3, 6, 3, 0, 28, 29, 5, 1, 0, 0, 29, 31, 1, 0, 0, 0, 30, 23, 1, 0, 0, 0, 30, 27, 1, 0, 0, 0, 31, 3, 1, 0, 0, 0, 32, 33, 5, 11, 0, 0, 33, 36, 5, 2, 0, 0, 34, 37, 3, 6, 3, 0, 35, 37, 5, 12, 0, 0, 36, 34, 1, 0, 0, 0, 36, 35, 1, 0, 0, 0, 37, 5, 1, 0, 0, 0, 38, 39, 3, 8, 4, 0, 39, 40, 5, 3, 0, 0, 40, 41, 3, 10, 5, 0, 41, 42, 5, 4, 0, 0, 42, 7, 1, 0, 0, 0, 43, 44, 7, 0, 0, 0, 44, 9, 1, 0, 0, 0, 45, 50, 3, 12, 6, 0, 46, 47, 5, 8, 0, 0, 47, 49, 3, 12, 6, 0, 48, 46, 1, 0, 0, 0, 49, 52, 1, 0, 0, 0, 50, 48, 1, 0, 0, 0, 50, 51, 1, 0, 0, 0, 51, 11, 1, 0, 0, 0, 52, 50, 1, 0, 0, 0, 53, 54, 7, 1, 0, 0, 54, 13, 1, 0, 0, 0, 55, 56, 7, 2, 0, 0, 56, 15, 1, 0, 0, 0, 4, 19, 30, 36, 50]
23 changes: 23 additions & 0 deletions ALFA/src/antlr/ALFA/ALFA.tokens
Original file line number Diff line number Diff line change
@@ -0,0 +1,23 @@
T__0=1
T__1=2
T__2=3
T__3=4
T__4=5
T__5=6
T__6=7
T__7=8
T__8=9
T__9=10
ID=11
NUM=12
WS=13
';'=1
'='=2
'('=3
')'=4
'createRect'=5
'move'=6
'wait'=7
','=8
'int'=9
'rect'=10
147 changes: 147 additions & 0 deletions ALFA/src/antlr/ALFA/ALFABaseListener.cs
Original file line number Diff line number Diff line change
@@ -0,0 +1,147 @@
//------------------------------------------------------------------------------
// <auto-generated>
// This code was generated by a tool.
// ANTLR Version: 4.12.0
//
// Changes to this file may cause incorrect behavior and will be lost if
// the code is regenerated.
// </auto-generated>
//------------------------------------------------------------------------------

// Generated from ALFA/ALFA.g4 by ANTLR 4.12.0

// Unreachable code detected
#pragma warning disable 0162
// The variable '...' is assigned but its value is never used
#pragma warning disable 0219
// Missing XML comment for publicly visible type or member '...'
#pragma warning disable 1591
// Ambiguous reference in cref attribute
#pragma warning disable 419


using Antlr4.Runtime.Misc;
using IErrorNode = Antlr4.Runtime.Tree.IErrorNode;
using ITerminalNode = Antlr4.Runtime.Tree.ITerminalNode;
using IToken = Antlr4.Runtime.IToken;
using ParserRuleContext = Antlr4.Runtime.ParserRuleContext;

/// <summary>
/// This class provides an empty implementation of <see cref="IALFAListener"/>,
/// which can be extended to create a listener which only needs to handle a subset
/// of the available methods.
/// </summary>
[System.CodeDom.Compiler.GeneratedCode("ANTLR", "4.12.0")]
[System.Diagnostics.DebuggerNonUserCode]
[System.CLSCompliant(false)]
public partial class ALFABaseListener : IALFAListener {
/// <summary>
/// Enter a parse tree produced by <see cref="ALFAParser.program"/>.
/// <para>The default implementation does nothing.</para>
/// </summary>
/// <param name="context">The parse tree.</param>
public virtual void EnterProgram([NotNull] ALFAParser.ProgramContext context) { }
/// <summary>
/// Exit a parse tree produced by <see cref="ALFAParser.program"/>.
/// <para>The default implementation does nothing.</para>
/// </summary>
/// <param name="context">The parse tree.</param>
public virtual void ExitProgram([NotNull] ALFAParser.ProgramContext context) { }
/// <summary>
/// Enter a parse tree produced by <see cref="ALFAParser.statement"/>.
/// <para>The default implementation does nothing.</para>
/// </summary>
/// <param name="context">The parse tree.</param>
public virtual void EnterStatement([NotNull] ALFAParser.StatementContext context) { }
/// <summary>
/// Exit a parse tree produced by <see cref="ALFAParser.statement"/>.
/// <para>The default implementation does nothing.</para>
/// </summary>
/// <param name="context">The parse tree.</param>
public virtual void ExitStatement([NotNull] ALFAParser.StatementContext context) { }
/// <summary>
/// Enter a parse tree produced by <see cref="ALFAParser.varDcl"/>.
/// <para>The default implementation does nothing.</para>
/// </summary>
/// <param name="context">The parse tree.</param>
public virtual void EnterVarDcl([NotNull] ALFAParser.VarDclContext context) { }
/// <summary>
/// Exit a parse tree produced by <see cref="ALFAParser.varDcl"/>.
/// <para>The default implementation does nothing.</para>
/// </summary>
/// <param name="context">The parse tree.</param>
public virtual void ExitVarDcl([NotNull] ALFAParser.VarDclContext context) { }
/// <summary>
/// Enter a parse tree produced by <see cref="ALFAParser.funcCall"/>.
/// <para>The default implementation does nothing.</para>
/// </summary>
/// <param name="context">The parse tree.</param>
public virtual void EnterFuncCall([NotNull] ALFAParser.FuncCallContext context) { }
/// <summary>
/// Exit a parse tree produced by <see cref="ALFAParser.funcCall"/>.
/// <para>The default implementation does nothing.</para>
/// </summary>
/// <param name="context">The parse tree.</param>
public virtual void ExitFuncCall([NotNull] ALFAParser.FuncCallContext context) { }
/// <summary>
/// Enter a parse tree produced by <see cref="ALFAParser.builtIns"/>.
/// <para>The default implementation does nothing.</para>
/// </summary>
/// <param name="context">The parse tree.</param>
public virtual void EnterBuiltIns([NotNull] ALFAParser.BuiltInsContext context) { }
/// <summary>
/// Exit a parse tree produced by <see cref="ALFAParser.builtIns"/>.
/// <para>The default implementation does nothing.</para>
/// </summary>
/// <param name="context">The parse tree.</param>
public virtual void ExitBuiltIns([NotNull] ALFAParser.BuiltInsContext context) { }
/// <summary>
/// Enter a parse tree produced by <see cref="ALFAParser.args"/>.
/// <para>The default implementation does nothing.</para>
/// </summary>
/// <param name="context">The parse tree.</param>
public virtual void EnterArgs([NotNull] ALFAParser.ArgsContext context) { }
/// <summary>
/// Exit a parse tree produced by <see cref="ALFAParser.args"/>.
/// <para>The default implementation does nothing.</para>
/// </summary>
/// <param name="context">The parse tree.</param>
public virtual void ExitArgs([NotNull] ALFAParser.ArgsContext context) { }
/// <summary>
/// Enter a parse tree produced by <see cref="ALFAParser.arg"/>.
/// <para>The default implementation does nothing.</para>
/// </summary>
/// <param name="context">The parse tree.</param>
public virtual void EnterArg([NotNull] ALFAParser.ArgContext context) { }
/// <summary>
/// Exit a parse tree produced by <see cref="ALFAParser.arg"/>.
/// <para>The default implementation does nothing.</para>
/// </summary>
/// <param name="context">The parse tree.</param>
public virtual void ExitArg([NotNull] ALFAParser.ArgContext context) { }
/// <summary>
/// Enter a parse tree produced by <see cref="ALFAParser.type"/>.
/// <para>The default implementation does nothing.</para>
/// </summary>
/// <param name="context">The parse tree.</param>
public virtual void EnterType([NotNull] ALFAParser.TypeContext context) { }
/// <summary>
/// Exit a parse tree produced by <see cref="ALFAParser.type"/>.
/// <para>The default implementation does nothing.</para>
/// </summary>
/// <param name="context">The parse tree.</param>
public virtual void ExitType([NotNull] ALFAParser.TypeContext context) { }

/// <inheritdoc/>
/// <remarks>The default implementation does nothing.</remarks>
public virtual void EnterEveryRule([NotNull] ParserRuleContext context) { }
/// <inheritdoc/>
/// <remarks>The default implementation does nothing.</remarks>
public virtual void ExitEveryRule([NotNull] ParserRuleContext context) { }
/// <inheritdoc/>
/// <remarks>The default implementation does nothing.</remarks>
public virtual void VisitTerminal([NotNull] ITerminalNode node) { }
/// <inheritdoc/>
/// <remarks>The default implementation does nothing.</remarks>
public virtual void VisitErrorNode([NotNull] IErrorNode node) { }
}
117 changes: 117 additions & 0 deletions ALFA/src/antlr/ALFA/ALFABaseVisitor.cs
Original file line number Diff line number Diff line change
@@ -0,0 +1,117 @@
//------------------------------------------------------------------------------
// <auto-generated>
// This code was generated by a tool.
// ANTLR Version: 4.12.0
//
// Changes to this file may cause incorrect behavior and will be lost if
// the code is regenerated.
// </auto-generated>
//------------------------------------------------------------------------------

// Generated from ALFA/ALFA.g4 by ANTLR 4.12.0

// Unreachable code detected
#pragma warning disable 0162
// The variable '...' is assigned but its value is never used
#pragma warning disable 0219
// Missing XML comment for publicly visible type or member '...'
#pragma warning disable 1591
// Ambiguous reference in cref attribute
#pragma warning disable 419

using Antlr4.Runtime.Misc;
using Antlr4.Runtime.Tree;
using IToken = Antlr4.Runtime.IToken;
using ParserRuleContext = Antlr4.Runtime.ParserRuleContext;

/// <summary>
/// This class provides an empty implementation of <see cref="IALFAVisitor{Result}"/>,
/// which can be extended to create a visitor which only needs to handle a subset
/// of the available methods.
/// </summary>
/// <typeparam name="Result">The return type of the visit operation.</typeparam>
[System.CodeDom.Compiler.GeneratedCode("ANTLR", "4.12.0")]
[System.Diagnostics.DebuggerNonUserCode]
[System.CLSCompliant(false)]
public partial class ALFABaseVisitor<Result> : AbstractParseTreeVisitor<Result>, IALFAVisitor<Result> {
/// <summary>
/// Visit a parse tree produced by <see cref="ALFAParser.program"/>.
/// <para>
/// The default implementation returns the result of calling <see cref="AbstractParseTreeVisitor{Result}.VisitChildren(IRuleNode)"/>
/// on <paramref name="context"/>.
/// </para>
/// </summary>
/// <param name="context">The parse tree.</param>
/// <return>The visitor result.</return>
public virtual Result VisitProgram([NotNull] ALFAParser.ProgramContext context) { return VisitChildren(context); }
/// <summary>
/// Visit a parse tree produced by <see cref="ALFAParser.statement"/>.
/// <para>
/// The default implementation returns the result of calling <see cref="AbstractParseTreeVisitor{Result}.VisitChildren(IRuleNode)"/>
/// on <paramref name="context"/>.
/// </para>
/// </summary>
/// <param name="context">The parse tree.</param>
/// <return>The visitor result.</return>
public virtual Result VisitStatement([NotNull] ALFAParser.StatementContext context) { return VisitChildren(context); }
/// <summary>
/// Visit a parse tree produced by <see cref="ALFAParser.varDcl"/>.
/// <para>
/// The default implementation returns the result of calling <see cref="AbstractParseTreeVisitor{Result}.VisitChildren(IRuleNode)"/>
/// on <paramref name="context"/>.
/// </para>
/// </summary>
/// <param name="context">The parse tree.</param>
/// <return>The visitor result.</return>
public virtual Result VisitVarDcl([NotNull] ALFAParser.VarDclContext context) { return VisitChildren(context); }
/// <summary>
/// Visit a parse tree produced by <see cref="ALFAParser.funcCall"/>.
/// <para>
/// The default implementation returns the result of calling <see cref="AbstractParseTreeVisitor{Result}.VisitChildren(IRuleNode)"/>
/// on <paramref name="context"/>.
/// </para>
/// </summary>
/// <param name="context">The parse tree.</param>
/// <return>The visitor result.</return>
public virtual Result VisitFuncCall([NotNull] ALFAParser.FuncCallContext context) { return VisitChildren(context); }
/// <summary>
/// Visit a parse tree produced by <see cref="ALFAParser.builtIns"/>.
/// <para>
/// The default implementation returns the result of calling <see cref="AbstractParseTreeVisitor{Result}.VisitChildren(IRuleNode)"/>
/// on <paramref name="context"/>.
/// </para>
/// </summary>
/// <param name="context">The parse tree.</param>
/// <return>The visitor result.</return>
public virtual Result VisitBuiltIns([NotNull] ALFAParser.BuiltInsContext context) { return VisitChildren(context); }
/// <summary>
/// Visit a parse tree produced by <see cref="ALFAParser.args"/>.
/// <para>
/// The default implementation returns the result of calling <see cref="AbstractParseTreeVisitor{Result}.VisitChildren(IRuleNode)"/>
/// on <paramref name="context"/>.
/// </para>
/// </summary>
/// <param name="context">The parse tree.</param>
/// <return>The visitor result.</return>
public virtual Result VisitArgs([NotNull] ALFAParser.ArgsContext context) { return VisitChildren(context); }
/// <summary>
/// Visit a parse tree produced by <see cref="ALFAParser.arg"/>.
/// <para>
/// The default implementation returns the result of calling <see cref="AbstractParseTreeVisitor{Result}.VisitChildren(IRuleNode)"/>
/// on <paramref name="context"/>.
/// </para>
/// </summary>
/// <param name="context">The parse tree.</param>
/// <return>The visitor result.</return>
public virtual Result VisitArg([NotNull] ALFAParser.ArgContext context) { return VisitChildren(context); }
/// <summary>
/// Visit a parse tree produced by <see cref="ALFAParser.type"/>.
/// <para>
/// The default implementation returns the result of calling <see cref="AbstractParseTreeVisitor{Result}.VisitChildren(IRuleNode)"/>
/// on <paramref name="context"/>.
/// </para>
/// </summary>
/// <param name="context">The parse tree.</param>
/// <return>The visitor result.</return>
public virtual Result VisitType([NotNull] ALFAParser.TypeContext context) { return VisitChildren(context); }
}
Loading