Skip to content

Commit

Permalink
Standardise compiler errors, and puctuation and change agent to class
Browse files Browse the repository at this point in the history
  • Loading branch information
Tinggaard committed Apr 22, 2024
1 parent fa546f1 commit e56fad6
Show file tree
Hide file tree
Showing 30 changed files with 144 additions and 105 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -26,7 +26,7 @@ public override bool VisitState(SctParser.StateContext context)
var returns = context.statement_list().Accept(this);
if (!returns)
{
_errors.Add(new CompilerError($"Not all code paths return a value in state {context.ID().GetText()}", context.Start.Line, context.Start.Column));
_errors.Add(new CompilerError($"Not all code paths specify an end condition in state {context.ID().GetText()}", context.Start.Line, context.Start.Column));
}
return returns;
}
Expand Down
99 changes: 50 additions & 49 deletions SocietalConstructionTool/Compiler/Typechecker/SctTypeChecker.cs

Large diffs are not rendered by default.

Original file line number Diff line number Diff line change
@@ -1,12 +1,12 @@
[
{
Message: Cannot assign float to int,
Message: Cannot assign float to int.,
Line: 7,
Column: 4,
Filename: {CurrentDirectory}TestFiles/StaticCheckTests/Assignment.sct
},
{
Message: Cannot assign Predicate to int,
Message: Cannot assign Predicate to int.,
Line: 8,
Column: 4,
Filename: {CurrentDirectory}TestFiles/StaticCheckTests/Assignment.sct
Expand Down
Original file line number Diff line number Diff line change
@@ -1,12 +1,12 @@
[
{
Message: Binary expression must have numeric types,
Message: Binary expression must have numeric types.,
Line: 6,
Column: 14,
Filename: {CurrentDirectory}TestFiles/StaticCheckTests/BinaryNotNumeric.Sct
},
{
Message: Binary expression must have numeric types,
Message: Binary expression must have numeric types.,
Line: 7,
Column: 8,
Filename: {CurrentDirectory}TestFiles/StaticCheckTests/BinaryNotNumeric.Sct
Expand Down
Original file line number Diff line number Diff line change
@@ -1,24 +1,24 @@
[
{
Message: Boolean expression must be numeric types or predicate comparisons. For predicates, only (in)equality is allowed,
Message: Boolean expression must be numeric types or predicate comparisons. For predicates, only (in)equality is allowed.,
Line: 39,
Column: 16,
Filename: {CurrentDirectory}TestFiles/StaticCheckTests/BinaryPredicate.sct
},
{
Message: Boolean expression must be numeric types or predicate comparisons. For predicates, only (in)equality is allowed,
Message: Boolean expression must be numeric types or predicate comparisons. For predicates, only (in)equality is allowed.,
Line: 40,
Column: 12,
Filename: {CurrentDirectory}TestFiles/StaticCheckTests/BinaryPredicate.sct
},
{
Message: Boolean expression must be numeric types or predicate comparisons. For predicates, only (in)equality is allowed,
Message: Boolean expression must be numeric types or predicate comparisons. For predicates, only (in)equality is allowed.,
Line: 41,
Column: 12,
Filename: {CurrentDirectory}TestFiles/StaticCheckTests/BinaryPredicate.sct
},
{
Message: Boolean expression must be numeric types or predicate comparisons. For predicates, only (in)equality is allowed,
Message: Boolean expression must be numeric types or predicate comparisons. For predicates, only (in)equality is allowed.,
Line: 42,
Column: 12,
Filename: {CurrentDirectory}TestFiles/StaticCheckTests/BinaryPredicate.sct
Expand Down
Original file line number Diff line number Diff line change
@@ -1,24 +1,24 @@
[
{
Message: Boolean expression must be numeric types or predicate comparisons. For predicates, only (in)equality is allowed,
Message: Boolean expression must be numeric types or predicate comparisons. For predicates, only (in)equality is allowed.,
Line: 6,
Column: 12,
Filename: {CurrentDirectory}TestFiles/StaticCheckTests/BooleanExpression.sct
},
{
Message: Boolean expression must be numeric types or predicate comparisons. For predicates, only (in)equality is allowed,
Message: Boolean expression must be numeric types or predicate comparisons. For predicates, only (in)equality is allowed.,
Line: 7,
Column: 8,
Filename: {CurrentDirectory}TestFiles/StaticCheckTests/BooleanExpression.sct
},
{
Message: Boolean expression must be numeric types or predicate comparisons. For predicates, only (in)equality is allowed,
Message: Boolean expression must be numeric types or predicate comparisons. For predicates, only (in)equality is allowed.,
Line: 8,
Column: 8,
Filename: {CurrentDirectory}TestFiles/StaticCheckTests/BooleanExpression.sct
},
{
Message: Boolean expression must be numeric types or predicate comparisons. For predicates, only (in)equality is allowed,
Message: Boolean expression must be numeric types or predicate comparisons. For predicates, only (in)equality is allowed.,
Line: 8,
Column: 24,
Filename: {CurrentDirectory}TestFiles/StaticCheckTests/BooleanExpression.sct
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -3,19 +3,19 @@
Message: No setup function found
},
{
Message: Agent Bar does not exist,
Message: Class 'Bar' does not exist,
Line: 4,
Column: 11,
Filename: {CurrentDirectory}TestFiles/StaticCheckTests/CreateAgentDoesNotExist.sct
},
{
Message: Agent Bar does not exist,
Message: Class 'Bar' does not exist,
Line: 5,
Column: 11,
Filename: {CurrentDirectory}TestFiles/StaticCheckTests/CreateAgentDoesNotExist.sct
},
{
Message: Agent Bar does not exist,
Message: Class 'Bar' does not exist,
Line: 6,
Column: 11,
Filename: {CurrentDirectory}TestFiles/StaticCheckTests/CreateAgentDoesNotExist.sct
Expand Down
Original file line number Diff line number Diff line change
@@ -1,12 +1,12 @@
[
{
Message: Duplicate argument a in agent predicate.,
Message: Duplicate argument 'a' in create statement.,
Line: 8,
Column: 11,
Filename: {CurrentDirectory}TestFiles/StaticCheckTests/CreateAgentDuplicateArgument.sct
},
{
Message: Duplicate argument a in agent predicate.,
Message: Duplicate argument 'a' in create statement.,
Line: 9,
Column: 11,
Filename: {CurrentDirectory}TestFiles/StaticCheckTests/CreateAgentDuplicateArgument.sct
Expand Down
Original file line number Diff line number Diff line change
@@ -1,18 +1,18 @@
[
{
Message: Field b does not exist in agent Foo,
Message: Field 'b' does not exist in class 'Foo'.,
Line: 8,
Column: 11,
Filename: {CurrentDirectory}TestFiles/StaticCheckTests/CreateAgentInvalidField.sct
},
{
Message: Missing argument a in agent create.,
Message: Missing argument 'a' in create statement.,
Line: 8,
Column: 11,
Filename: {CurrentDirectory}TestFiles/StaticCheckTests/CreateAgentInvalidField.sct
},
{
Message: Field b does not exist in agent Foo,
Message: Field 'b' does not exist in class 'Foo'.,
Line: 9,
Column: 11,
Filename: {CurrentDirectory}TestFiles/StaticCheckTests/CreateAgentInvalidField.sct
Expand Down
Original file line number Diff line number Diff line change
@@ -1,24 +1,24 @@
[
{
Message: Missing argument b in agent create.,
Message: Missing argument 'b' in create statement.,
Line: 8,
Column: 11,
Filename: {CurrentDirectory}TestFiles/StaticCheckTests/CreateAgentMissingArgument.sct
},
{
Message: Missing argument a in agent create.,
Message: Missing argument 'a' in create statement.,
Line: 9,
Column: 11,
Filename: {CurrentDirectory}TestFiles/StaticCheckTests/CreateAgentMissingArgument.sct
},
{
Message: Missing argument a in agent create.,
Message: Missing argument 'a' in create statement.,
Line: 10,
Column: 11,
Filename: {CurrentDirectory}TestFiles/StaticCheckTests/CreateAgentMissingArgument.sct
},
{
Message: Missing argument b in agent create.,
Message: Missing argument 'b' in create statement.,
Line: 10,
Column: 11,
Filename: {CurrentDirectory}TestFiles/StaticCheckTests/CreateAgentMissingArgument.sct
Expand Down
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
[
{
Message: State Baz does not exist in agent Foo,
Message: State 'Baz' does not exist in class 'Foo',
Line: 8,
Column: 11,
Filename: {CurrentDirectory}TestFiles/StaticCheckTests/CreateAgentStateDoesNotExist.sct
Expand Down
Original file line number Diff line number Diff line change
@@ -1,12 +1,12 @@
[
{
Message: Cannot convert float to int,
Message: Cannot convert float to int.,
Line: 10,
Column: 11,
Filename: {CurrentDirectory}TestFiles/StaticCheckTests/CreateAgentTypeMismatch.sct
},
{
Message: Cannot convert float to int,
Message: Cannot convert float to int.,
Line: 11,
Column: 11,
Filename: {CurrentDirectory}TestFiles/StaticCheckTests/CreateAgentTypeMismatch.sct
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -4,11 +4,5 @@
Line: 2,
Column: 4,
Filename: {CurrentDirectory}TestFiles/StaticCheckTests/EnterInFunction.sct
},
{
Message: State A does not exist in class Global,
Line: 2,
Column: 4,
Filename: {CurrentDirectory}TestFiles/StaticCheckTests/EnterInFunction.sct
}
]
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
[
{
Message: State Dead does not exist in class Citizen,
Message: State 'Dead' does not exist in class 'Citizen'.,
Line: 7,
Column: 8,
Filename: {CurrentDirectory}TestFiles/StaticCheckTests/EnterUnknownState.Sct
Expand Down
Original file line number Diff line number Diff line change
@@ -1,12 +1,12 @@
[
{
Message: Cannot assign float to int,
Message: Cannot assign float to int.,
Line: 2,
Column: 4,
Filename: {CurrentDirectory}TestFiles/StaticCheckTests/FloatToInt.Sct
},
{
Message: Cannot assign float to int,
Message: Cannot assign float to int.,
Line: 3,
Column: 4,
Filename: {CurrentDirectory}TestFiles/StaticCheckTests/FloatToInt.Sct
Expand Down
Original file line number Diff line number Diff line change
@@ -1,12 +1,12 @@
[
{
Message: Cannot convert float to int in call expression.,
Message: Cannot convert float to int in call to function 'test'.,
Line: 6,
Column: 4,
Filename: {CurrentDirectory}TestFiles/StaticCheckTests/FunctionArguments.sct
},
{
Message: Cannot convert float to int in call expression.,
Message: Cannot convert float to int in call to function 'test'.,
Line: 7,
Column: 4,
Filename: {CurrentDirectory}TestFiles/StaticCheckTests/FunctionArguments.sct
Expand Down
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
[
{
Message: Function foo does not exist,
Message: Function 'foo' does not exist.,
Line: 2,
Column: 4,
Filename: {CurrentDirectory}TestFiles/StaticCheckTests/FunctionUnknown.Sct
Expand Down
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
[
{
Message: Agent Town does not exist,
Message: Class 'Town' does not exist.,
Line: 12,
Column: 19,
Filename: {CurrentDirectory}TestFiles/StaticCheckTests/PredAgentDoesNotExist.sct
Expand Down
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
[
{
Message: Duplicate argument townId in agent predicate.,
Message: Duplicate argument 'townId' in predicate.,
Line: 12,
Column: 19,
Filename: {CurrentDirectory}TestFiles/StaticCheckTests/PredDuplicateArgument.sct
Expand Down
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
[
{
Message: State Dead does not exist in agent Citizen,
Message: State 'Dead' does not exist in class 'Citizen'.,
Line: 12,
Column: 19,
Filename: {CurrentDirectory}TestFiles/StaticCheckTests/PredStateDoesNotExist.sct
Expand Down
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
[
{
Message: Variable weight does not exist in agent Citizen,
Message: Field 'weight' does not exist in class 'Citizen'.,
Line: 4,
Column: 19,
Filename: {CurrentDirectory}TestFiles/StaticCheckTests/PredVariableDoesNotExist.sct
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@
Filename: {CurrentDirectory}TestFiles/StaticCheckTests/TypecastMismatch.sct
},
{
Message: Cannot assign void to float,
Message: Cannot assign void to float.,
Line: 4,
Column: 4,
Filename: {CurrentDirectory}TestFiles/StaticCheckTests/TypecastMismatch.sct
Expand Down
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
[
{
Message: Decorator someDecorator does not exist in class Citizen,
Message: Decorator 'someDecorator' does not exist in class 'Citizen'.,
Line: 9,
Column: 4,
Filename: {CurrentDirectory}TestFiles/StaticCheckTests/UnknownDecorator.Sct
Expand Down
Original file line number Diff line number Diff line change
@@ -1,12 +1,12 @@
[
{
Message: Variable x already exists,
Message: Variable 'x' already exists.,
Line: 3,
Column: 4,
Filename: {CurrentDirectory}TestFiles/StaticCheckTests/VariableReused.Sct
},
{
Message: Variable x already exists,
Message: Variable 'x' already exists.,
Line: 4,
Column: 4,
Filename: {CurrentDirectory}TestFiles/StaticCheckTests/VariableReused.Sct
Expand Down
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
[
{
Message: Variable x does not exist,
Message: Variable 'x' does not exist.,
Line: 6,
Column: 4,
Filename: {CurrentDirectory}TestFiles/StaticCheckTests/VariableUnknown.Sct
Expand Down
Original file line number Diff line number Diff line change
@@ -1,12 +1,12 @@
[
{
Message: Variable cannot be of type: void,
Message: Variable cannot be of type void.,
Line: 2,
Column: 3,
Filename: {CurrentDirectory}TestFiles/StaticCheckTests/VoidVariable.Sct
},
{
Message: Cannot assign int to void,
Message: Cannot assign int to void.,
Line: 2,
Column: 3,
Filename: {CurrentDirectory}TestFiles/StaticCheckTests/VoidVariable.Sct
Expand Down
Original file line number Diff line number Diff line change
@@ -1,12 +1,12 @@
[
{
Message: Function test expected 3 arguments, but 2 were provided,
Message: Function 'test' expected 3 arguments, but 2 were provided.,
Line: 4,
Column: 4,
Filename: {CurrentDirectory}TestFiles/StaticCheckTests/WrongArgumentAmount.Sct
},
{
Message: Function test expected 3 arguments, but 4 were provided,
Message: Function 'test' expected 3 arguments, but 4 were provided.,
Line: 6,
Column: 4,
Filename: {CurrentDirectory}TestFiles/StaticCheckTests/WrongArgumentAmount.Sct
Expand Down
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
[
{
Message: Cannot convert int to void in call expression.,
Message: Cannot convert int to void in call to function 'test'.,
Line: 4,
Column: 4,
Filename: {CurrentDirectory}TestFiles/StaticCheckTests/WrongArgumentType.Sct
Expand Down
Loading

0 comments on commit e56fad6

Please sign in to comment.