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
8 changes: 4 additions & 4 deletions .github/workflows/build.yml
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,7 @@ jobs:
- name: Checkout repository code
uses: actions/checkout@v6
- name: Install Rust toolchain
uses: dtolnay/rust-toolchain@nightly
uses: dtolnay/rust-toolchain@stable
with:
components: clippy
- name: Build
Expand All @@ -27,7 +27,7 @@ jobs:
- name: Checkout repository code
uses: actions/checkout@v6
- name: Install Rust toolchain
uses: dtolnay/rust-toolchain@nightly
uses: dtolnay/rust-toolchain@stable
- name: Build
run: cargo build --release
- name: Test
Expand All @@ -42,7 +42,7 @@ jobs:
- name: Checkout repository code
uses: actions/checkout@v6
- name: Install Rust toolchain
uses: dtolnay/rust-toolchain@nightly
uses: dtolnay/rust-toolchain@stable
with:
components: clippy
- name: Build
Expand All @@ -55,7 +55,7 @@ jobs:
- name: Checkout repository code
uses: actions/checkout@v6
- name: Install Rust toolchain
uses: dtolnay/rust-toolchain@nightly
uses: dtolnay/rust-toolchain@stable
- name: Build
run: cargo build --release
- name: Test
Expand Down
8 changes: 4 additions & 4 deletions .github/workflows/release.yml
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@ jobs:
- name: Checkout repository code
uses: actions/checkout@v6
- name: Install Rust toolchain
uses: dtolnay/rust-toolchain@nightly
uses: dtolnay/rust-toolchain@stable
- name: Build
run: cargo build
- name: Test
Expand All @@ -20,7 +20,7 @@ jobs:
- name: Checkout repository code
uses: actions/checkout@v6
- name: Install Rust toolchain
uses: dtolnay/rust-toolchain@nightly
uses: dtolnay/rust-toolchain@stable
- name: Build
run: cargo build --release
- name: Test
Expand All @@ -35,7 +35,7 @@ jobs:
- name: Checkout repository code
uses: actions/checkout@v6
- name: Install Rust toolchain
uses: dtolnay/rust-toolchain@nightly
uses: dtolnay/rust-toolchain@stable
- name: Build
run: cargo build
- name: Test
Expand All @@ -46,7 +46,7 @@ jobs:
- name: Checkout repository code
uses: actions/checkout@v6
- name: Install Rust toolchain
uses: dtolnay/rust-toolchain@nightly
uses: dtolnay/rust-toolchain@stable
- name: Build
run: cargo build --release
- name: Test
Expand Down
9 changes: 0 additions & 9 deletions .gitpod.yml

This file was deleted.

11 changes: 0 additions & 11 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -117,14 +117,3 @@ DIM A AS INTEGER
A = 42 ' this is an integer because it's explicitly defined as such
A$ = "hello" ' duplicate definition error here
```

## Development

The project uses the nightly toolchain currently,
to take advantage of `rustfmt` features that are onyl available there.

Additionally, building on a Mac might cause some linker errors on the current
stable toolchain, which aren't occurring on the nightly.

Tip: run tests continuously with `make watch` or
`nodemon -e rs -x "cargo test"`.
4 changes: 0 additions & 4 deletions rustfmt.toml

This file was deleted.

3 changes: 2 additions & 1 deletion rusty_basic/src/instruction_generator/loops.rs
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
use rusty_common::*;
use rusty_parser::{
ConditionalBlock, DoLoop, DoLoopConditionKind, DoLoopConditionPosition, Expression, ExpressionPos, ForLoop, HasExpressionType, Statements
ConditionalBlock, DoLoop, DoLoopConditionKind, DoLoopConditionPosition, Expression,
ExpressionPos, ForLoop, HasExpressionType, Statements,
};
use rusty_variant::Variant;

Expand Down
6 changes: 4 additions & 2 deletions rusty_basic/src/instruction_generator/main.rs
Original file line number Diff line number Diff line change
Expand Up @@ -2,14 +2,16 @@ use rusty_common::{AtPos, CaseInsensitiveString, Position, Positioned};
use rusty_linter::core::{LinterContext, ScopeName};
use rusty_linter::names::Names;
use rusty_parser::{
Assignment, BareName, BuiltInFunction, BuiltInSub, DimVar, Expression, ExpressionType, FileHandle, FunctionImplementation, GlobalStatement, HasExpressionType, Name, Parameter, Program, Statement, Statements, SubImplementation, TypeQualifier, UserDefinedTypes
Assignment, BareName, BuiltInFunction, BuiltInSub, DimVar, Expression, ExpressionType,
FileHandle, FunctionImplementation, GlobalStatement, HasExpressionType, Name, Parameter,
Program, Statement, Statements, SubImplementation, TypeQualifier, UserDefinedTypes,
};
use rusty_variant::Variant;

use crate::RuntimeError;
use crate::instruction_generator::label_resolver::LabelResolver;
use crate::instruction_generator::subprogram_info::{
SubprogramInfoCollector, SubprogramInfoRepository
SubprogramInfoCollector, SubprogramInfoRepository,
};

pub fn unwrap_linter_context(linter_context: LinterContext) -> (Names, UserDefinedTypes) {
Expand Down
3 changes: 2 additions & 1 deletion rusty_basic/src/instruction_generator/test_utils.rs
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,8 @@ use rusty_linter::core::lint;
use rusty_parser::{UserDefinedTypes, parse};

use crate::instruction_generator::{
Instruction, InstructionGeneratorResult, InstructionPos, generate_instructions, unwrap_linter_context
Instruction, InstructionGeneratorResult, InstructionPos, generate_instructions,
unwrap_linter_context,
};

pub fn generate_instructions_str_with_types(
Expand Down
3 changes: 2 additions & 1 deletion rusty_basic/src/interpreter/keyboard.rs
Original file line number Diff line number Diff line change
Expand Up @@ -27,7 +27,8 @@ mod windows_impl {
extern crate winapi;

use winapi::um::winuser::{
GetKeyboardState, INPUT, INPUT_KEYBOARD, KEYEVENTF_KEYUP, SendInput, VK_CAPITAL, VK_NUMLOCK, VK_SCROLL
GetKeyboardState, INPUT, INPUT_KEYBOARD, KEYEVENTF_KEYUP, SendInput, VK_CAPITAL,
VK_NUMLOCK, VK_SCROLL,
};

use crate::RuntimeError;
Expand Down
2 changes: 1 addition & 1 deletion rusty_basic/src/interpreter/main.rs
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,7 @@ use crate::interpreter::context::*;
use crate::interpreter::data_segment::DataSegment;
use crate::interpreter::default_stdlib::DefaultStdlib;
use crate::interpreter::handlers::allocation::{
allocate_array, allocate_built_in, allocate_fixed_length_string, allocate_user_defined_type
allocate_array, allocate_built_in, allocate_fixed_length_string, allocate_user_defined_type,
};
use crate::interpreter::interpreter_trait::InterpreterTrait;
use crate::interpreter::io::{FileManager, Input, Printer};
Expand Down
2 changes: 1 addition & 1 deletion rusty_basic/src/interpreter/test_utils.rs
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@ use rusty_parser::{UserDefinedTypes, parse_main_file};
use crate::RuntimeErrorPos;
use crate::instruction_generator::test_utils::generate_instructions_str_with_types;
use crate::instruction_generator::{
InstructionGeneratorResult, generate_instructions, unwrap_linter_context
InstructionGeneratorResult, generate_instructions, unwrap_linter_context,
};
use crate::interpreter::Stdlib;
use crate::interpreter::interpreter_trait::InterpreterTrait;
Expand Down
3 changes: 2 additions & 1 deletion rusty_basic/src/interpreter/tests/loops.rs
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,8 @@ use rusty_common::*;
use crate::interpreter::interpreter_trait::InterpreterTrait;
use crate::interpreter::test_utils::*;
use crate::{
ErrorEnvelope, RuntimeError, assert_has_variable, assert_prints, assert_prints_exact, assert_prints_nothing
ErrorEnvelope, RuntimeError, assert_has_variable, assert_prints, assert_prints_exact,
assert_prints_nothing,
};

#[test]
Expand Down
2 changes: 1 addition & 1 deletion rusty_basic/src/interpreter/variables.rs
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
use rusty_parser::{
AsBareName, BareName, DimType, DimVar, Name, ParamType, Parameter, TypeQualifier
AsBareName, BareName, DimType, DimVar, Name, ParamType, Parameter, TypeQualifier,
};
use rusty_variant::{V_FALSE, Variant};

Expand Down
3 changes: 2 additions & 1 deletion rusty_linter/src/built_ins/arg_validation.rs
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
use rusty_common::{AtPos, Position};
use rusty_parser::{
Expression, ExpressionPos, ExpressionTrait, ExpressionType, Expressions, HasExpressionType, TypeQualifier
Expression, ExpressionPos, ExpressionTrait, ExpressionType, Expressions, HasExpressionType,
TypeQualifier,
};

use crate::core::{CanCastTo, LintError, LintErrorPos};
Expand Down
2 changes: 1 addition & 1 deletion rusty_linter/src/built_ins/len.rs
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
use rusty_common::{AtPos, Position};
use rusty_parser::{
ExpressionPos, ExpressionTrait, ExpressionType, Expressions, HasExpressionType, TypeQualifier
ExpressionPos, ExpressionTrait, ExpressionType, Expressions, HasExpressionType, TypeQualifier,
};

use crate::core::{CanCastTo, LintError, LintErrorPos};
Expand Down
3 changes: 2 additions & 1 deletion rusty_linter/src/converter/common/program_rules.rs
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
use rusty_common::{AtPos, Position, Positioned};
use rusty_parser::{
DimVar, FunctionImplementation, GlobalStatement, GlobalStatementPos, Program, Statement, Statements, SubImplementation
DimVar, FunctionImplementation, GlobalStatement, GlobalStatementPos, Program, Statement,
Statements, SubImplementation,
};

use crate::converter::common::{Convertible, ConvertibleIn};
Expand Down
2 changes: 1 addition & 1 deletion rusty_linter/src/converter/dim_rules/dim_type_rules.rs
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@ use rusty_parser::*;

use crate::converter::common::{Convertible, DimContext, DimNameState};
use crate::core::{
IntoTypeQualifier, LintError, LintErrorPos, LinterContext, ValidateStringLength
IntoTypeQualifier, LintError, LintErrorPos, LinterContext, ValidateStringLength,
};

pub fn on_dim_type(
Expand Down
3 changes: 2 additions & 1 deletion rusty_linter/src/converter/dim_rules/redim.rs
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,8 @@ use rusty_parser::*;

use crate::converter::common::{Convertible, DimNameState};
use crate::core::{
IntoTypeQualifier, LintError, LintErrorPos, LinterContext, RedimInfo, ValidateStringLength, VariableInfo
IntoTypeQualifier, LintError, LintErrorPos, LinterContext, RedimInfo, ValidateStringLength,
VariableInfo,
};

pub fn on_redim_type(
Expand Down
2 changes: 1 addition & 1 deletion rusty_linter/src/converter/expr_rules/built_in_function.rs
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@ use rusty_common::Position;
use rusty_parser::{BuiltInFunction, Expression, Expressions};

use crate::converter::expr_rules::function::{
convert_function_args, functions_must_have_arguments
convert_function_args, functions_must_have_arguments,
};
use crate::core::{LintErrorPos, LinterContext};

Expand Down
3 changes: 2 additions & 1 deletion rusty_linter/src/converter/expr_rules/function.rs
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,8 @@ use rusty_parser::{AsBareName, BareName, Expression, ExpressionType, Expressions
use crate::converter::common::{ConvertibleIn, ExprContext, ExprContextPos};
use crate::converter::expr_rules::qualify_name::*;
use crate::core::{
IntoQualified, IntoTypeQualifier, LintError, LintErrorPos, LintResult, LinterContext, VariableInfo
IntoQualified, IntoTypeQualifier, LintError, LintErrorPos, LintResult, LinterContext,
VariableInfo,
};

pub fn convert(
Expand Down
2 changes: 1 addition & 1 deletion rusty_linter/src/converter/expr_rules/main.rs
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@ use rusty_parser::*;

use crate::converter::common::{ConvertibleIn, ExprContext, ExprContextPos};
use crate::converter::expr_rules::{
binary, built_in_function, function, property, unary, variable
binary, built_in_function, function, property, unary, variable,
};
use crate::core::{LintErrorPos, LinterContext};

Expand Down
6 changes: 4 additions & 2 deletions rusty_linter/src/converter/expr_rules/property.rs
Original file line number Diff line number Diff line change
@@ -1,11 +1,13 @@
use rusty_common::{AtPos, Position, Positioned};
use rusty_parser::{
AsBareName, BareName, ElementType, Expression, ExpressionType, HasExpressionType, Name, ToBareName, UserDefinedType
AsBareName, BareName, ElementType, Expression, ExpressionType, HasExpressionType, Name,
ToBareName, UserDefinedType,
};

use crate::converter::common::{ConvertibleIn, ExprContext, ExprContextPos};
use crate::converter::expr_rules::variable::{
AssignToFunction, ExistingConst, ExistingVar, VarAsUserDefinedFunctionCall, VarResolve, add_as_new_implicit_var
AssignToFunction, ExistingConst, ExistingVar, VarAsUserDefinedFunctionCall, VarResolve,
add_as_new_implicit_var,
};
use crate::core::{LintError, LintErrorPos, LinterContext};

Expand Down
2 changes: 1 addition & 1 deletion rusty_linter/src/converter/expr_rules/unary.rs
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
use rusty_common::AtPos;
use rusty_parser::{
Expression, ExpressionPos, ExpressionType, HasExpressionType, TypeQualifier, UnaryOperator
Expression, ExpressionPos, ExpressionType, HasExpressionType, TypeQualifier, UnaryOperator,
};

use crate::converter::common::{ConvertibleIn, ExprContextPos};
Expand Down
6 changes: 4 additions & 2 deletions rusty_linter/src/converter/expr_rules/variable.rs
Original file line number Diff line number Diff line change
@@ -1,13 +1,15 @@
use rusty_common::{AtPos, Position};
use rusty_parser::{
AsBareName, BuiltInFunction, BuiltInStyle, DimType, Expression, ExpressionType, Name, TypeQualifier
AsBareName, BuiltInFunction, BuiltInStyle, DimType, Expression, ExpressionType, Name,
TypeQualifier,
};
use rusty_variant::Variant;

use crate::converter::common::{ExprContext, ExprContextPos};
use crate::converter::expr_rules::qualify_name::*;
use crate::core::{
ConstLookup, IntoQualified, IntoTypeQualifier, LintError, LintErrorPos, LintResult, LinterContext, VariableInfo, qualifier_of_const_variant
ConstLookup, IntoQualified, IntoTypeQualifier, LintError, LintErrorPos, LintResult,
LinterContext, VariableInfo, qualifier_of_const_variant,
};

pub fn convert(
Expand Down
3 changes: 2 additions & 1 deletion rusty_linter/src/converter/statement/const_rules.rs
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,8 @@ use rusty_common::*;
use rusty_parser::*;

use crate::core::{
CastVariant, ConstEvaluator, LintError, LintErrorPos, LintResult, LinterContext, qualifier_of_const_variant
CastVariant, ConstEvaluator, LintError, LintErrorPos, LintResult, LinterContext,
qualifier_of_const_variant,
};

pub fn on_const(ctx: &mut LinterContext, c: Constant) -> Result<Statement, LintErrorPos> {
Expand Down
2 changes: 1 addition & 1 deletion rusty_linter/src/core/casting.rs
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
use rusty_common::AtPos;
use rusty_parser::{
Expression, ExpressionPos, ExpressionType, HasExpressionType, Operator, TypeQualifier
Expression, ExpressionPos, ExpressionType, HasExpressionType, Operator, TypeQualifier,
};

use crate::core::{CanCastTo, LintError, LintErrorPos};
Expand Down
2 changes: 1 addition & 1 deletion rusty_linter/src/post_linter/condition_type_linter.rs
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
use rusty_common::AtPos;
use rusty_parser::{
ConditionalBlock, DoLoop, ExpressionPos, ExpressionType, HasExpressionType, TypeQualifier
ConditionalBlock, DoLoop, ExpressionPos, ExpressionType, HasExpressionType, TypeQualifier,
};

use crate::core::{LintError, LintErrorPos};
Expand Down
4 changes: 3 additions & 1 deletion rusty_linter/src/post_linter/main.rs
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,9 @@ use crate::core::{LintErrorPos, LinterContext, Visitor};
use crate::post_linter::expression_reducer::ExpressionReducer;
use crate::post_linter::post_conversion_linter::PostConversionLinter;
use crate::post_linter::{
built_in_linter, condition_type_linter, dots_linter, for_next_counter_match_linter, label_linter, print_linter, select_case_linter, undefined_function_reducer, user_defined_function_linter, user_defined_sub_linter
built_in_linter, condition_type_linter, dots_linter, for_next_counter_match_linter,
label_linter, print_linter, select_case_linter, undefined_function_reducer,
user_defined_function_linter, user_defined_sub_linter,
};

pub fn post_linter(
Expand Down
2 changes: 1 addition & 1 deletion rusty_linter/src/pre_linter/user_defined_type_visitor.rs
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@ use std::collections::HashMap;

use rusty_common::{AtPos, Position, Positioned};
use rusty_parser::{
BareName, Element, ElementPos, ElementType, Expression, UserDefinedType, UserDefinedTypes
BareName, Element, ElementPos, ElementType, Expression, UserDefinedType, UserDefinedTypes,
};

use crate::core::{ConstLookup, LintError, ValidateStringLength, VisitResult, Visitor};
Expand Down
2 changes: 1 addition & 1 deletion rusty_parser/src/built_ins/close.rs
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@ use rusty_pc::*;

use crate::expr::expression_pos_p;
use crate::expr::file_handle::{
file_handle_as_expression_pos_p, guarded_file_handle_or_expression_p
file_handle_as_expression_pos_p, guarded_file_handle_or_expression_p,
};
use crate::input::StringView;
use crate::pc_specific::*;
Expand Down
2 changes: 1 addition & 1 deletion rusty_parser/src/built_ins/common.rs
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@ use crate::input::StringView;
use crate::pc_specific::*;
use crate::tokens::comma_ws;
use crate::{
BuiltInSub, Expression, ExpressionPos, Expressions, FileHandle, Keyword, ParserError, Statement
BuiltInSub, Expression, ExpressionPos, Expressions, FileHandle, Keyword, ParserError, Statement,
};

/// Parses built-in subs with optional arguments.
Expand Down
2 changes: 1 addition & 1 deletion rusty_parser/src/core/dim.rs
Original file line number Diff line number Diff line change
Expand Up @@ -45,7 +45,7 @@ mod tests {

use crate::test_utils::*;
use crate::{
assert_parse_dim_compact, assert_parse_dim_extended_built_in, assert_parser_err, *
assert_parse_dim_compact, assert_parse_dim_extended_built_in, assert_parser_err, *,
};
#[test]
fn test_parse_dim_extended_built_in() {
Expand Down
3 changes: 2 additions & 1 deletion rusty_parser/src/core/dim_name.rs
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,8 @@ use crate::core::var_name;
use crate::input::StringView;
use crate::pc_specific::*;
use crate::{
ArrayDimensions, BareName, BuiltInStyle, DimList, DimType, Name, ParserError, ToBareName, TypeQualifier, TypedName
ArrayDimensions, BareName, BuiltInStyle, DimList, DimType, Name, ParserError, ToBareName,
TypeQualifier, TypedName,
};

pub type DimVar = TypedName<DimType>;
Expand Down
3 changes: 2 additions & 1 deletion rusty_parser/src/core/dim_type.rs
Original file line number Diff line number Diff line change
@@ -1,7 +1,8 @@
use rusty_common::{AtPos, Position};

use crate::{
ArrayDimensions, BareNamePos, BuiltInStyle, Expression, ExpressionPos, ExpressionType, HasExpressionType, TypeQualifier, VarType
ArrayDimensions, BareNamePos, BuiltInStyle, Expression, ExpressionPos, ExpressionType,
HasExpressionType, TypeQualifier, VarType,
};

#[derive(Clone, Debug, PartialEq, Default)]
Expand Down
Loading