Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
30 commits
Select commit Hold shift + click to select a range
ff546b7
Add enum statement support to Intellij plugin
VxTi Mar 11, 2026
b4cc6c0
Refactor AstAliasType to simplify underlying type retrieval and impro…
VxTi Mar 11, 2026
953c9b7
Refactored chained expression parsing to allow function calls and mem…
VxTi Mar 11, 2026
25939be
Added tests for chained expression member accessor
VxTi Mar 11, 2026
08f9761
Refactor object type handling to improve clarity and support generics
VxTi Mar 12, 2026
45c7dc7
Enhance type name retrieval in AstObjectType and AstAliasType for bet…
VxTi Mar 12, 2026
b003daf
Update example
VxTi Mar 12, 2026
e66fe2a
remove: unused files and documentation, refactor types, enhance impor…
VxTi Mar 12, 2026
2ee23d1
Added folding support to stride intellij plugin
VxTi Mar 12, 2026
4acd08b
Updated folding implementation for enumerables + file headers
VxTi Mar 12, 2026
d874c5d
Rename scripts and enhance test execution output for better clarity
VxTi Mar 12, 2026
8ac4094
Enhance formatting support for object initialization and function cal…
VxTi Mar 13, 2026
15c5422
Add custom code style settings for Stride language support
VxTi Mar 13, 2026
072b962
Improve test logging and update test execution command in build scripts
VxTi Mar 13, 2026
a14c2c7
Updated CI to log Kotlin tests
VxTi Mar 13, 2026
c54f876
Refactor data structure definitions and enhance formatting for object…
VxTi Mar 13, 2026
fc57ac4
Refactor variable reassignment / function call implementation to use …
VxTi Mar 13, 2026
5331b2d
Separated codegen of function call into separate functions for better…
VxTi Mar 13, 2026
fa56156
Resolve type inference for chained member accessor function calls
VxTi Mar 13, 2026
83b0d95
Resolved anonymous function calls from object fields causing segfault…
VxTi Mar 13, 2026
07ff94d
Enhance object initialization and improve function call handling with…
VxTi Mar 13, 2026
62910d1
Refactor type parsing functions to improve readability and maintainab…
VxTi Mar 13, 2026
79ba9d9
Improve lambda function matching by prioritizing exact matches and re…
VxTi Mar 13, 2026
c05b6c8
Enhance lambda function matching by adding support for capture prefer…
VxTi Mar 13, 2026
4d413ac
Add recursion guard to nested type resolution to prevent stack overflow
VxTi Mar 13, 2026
46a21a2
Add variable capturing for anonymous functions so that function param…
VxTi Mar 13, 2026
bc14b8b
Add grammer support in intellij plugin for anonymous functions withou…
VxTi Mar 13, 2026
cbe308d
Adjusted error logging, added Result utility function to STL
VxTi Mar 13, 2026
6b1ef37
Apply Copilot feedback
VxTi Mar 13, 2026
614e789
Adjust BNF to prioritize enumerables with values
VxTi Mar 14, 2026
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
2 changes: 1 addition & 1 deletion .github/workflows/ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -87,7 +87,7 @@ jobs:

- name: Run Tests
working-directory: packages/stride-plugin-intellij
run: ./gradlew test
run: ./gradlew clean test
deploy:
name: Documentation Site Deployment
runs-on: ubuntu-latest
Expand Down
4 changes: 4 additions & 0 deletions .idea/codeStyles/Project.xml

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

30 changes: 7 additions & 23 deletions example.sr
Original file line number Diff line number Diff line change
@@ -1,34 +1,18 @@
import System::{
IO::Print,
IO::Read
io::print,
};

type Array<T> = {
length: i32;
data: T[];
};

type SomeCar = {
make: string;
model: string;
year: i32;
};

type SomePerson = {
name: string;
age: i32;
cars: Array<SomeCar>;
};

fn make_car(make: string, model: string, year: i32): SomeCar {
return SomeCar::{ make, model, year };
enum Test {
First: 123,
Second: 456,
Third: 789
}

fn main(): i32 {

const my_car = make_car("Toyota", "Corolla", 2020);
const k: Test = Test::First;

IO::Print("My car is a %s %s from %d", my_car.make, my_car.model, my_car.year);
io::print("k[0] = %d", k);

return 0;
}
18 changes: 0 additions & 18 deletions packages/compiler/compilation-diagram.md

This file was deleted.

7 changes: 0 additions & 7 deletions packages/compiler/config-json-schema.json

This file was deleted.

3 changes: 2 additions & 1 deletion packages/compiler/include/ast/closures.h
Original file line number Diff line number Diff line change
Expand Up @@ -60,7 +60,8 @@ namespace stride::ast::closures
*/
llvm::Function* find_lambda_function(
llvm::Module* module,
const llvm::FunctionType* fn_type
const llvm::FunctionType* fn_type,
bool prefer_captures = false
);

/**
Expand Down
9 changes: 5 additions & 4 deletions packages/compiler/include/ast/flags.h
Original file line number Diff line number Diff line change
Expand Up @@ -18,10 +18,11 @@
#define SRFLAG_TYPE_VARIADIC (0x80)
#define SRFLAG_TYPE_INT_SIGNED (0x100)
#define SRFLAG_TYPE_FUNCTION (0x200)
#define SRFLAG_FN_TYPE_VARIADIC (0x400)
#define SRFLAG_FN_TYPE_EXTERN (0x800)
#define SRFLAG_FN_TYPE_ASYNC (0x01000)
#define SRFLAG_FN_TYPE_ANONYMOUS (0x2000)
#define SRFLAG_TYPE_GENERIC_REF (0x400)
#define SRFLAG_FN_TYPE_VARIADIC (0x800)
#define SRFLAG_FN_TYPE_EXTERN (0x1000)
#define SRFLAG_FN_TYPE_ASYNC (0x02000)
#define SRFLAG_FN_TYPE_ANONYMOUS (0x4000)

#define SRFLAG_FN_PARAM_DEF_VARIADIC (0x1)
#define SRFLAG_FN_PARAM_DEF_MUTABLE (0x2)
16 changes: 13 additions & 3 deletions packages/compiler/include/ast/nodes/enumerables.h
Original file line number Diff line number Diff line change
Expand Up @@ -40,7 +40,10 @@ namespace stride::ast

std::string to_string() override;

llvm::Value* codegen(llvm::Module* module, llvm::IRBuilderBase* builder) override { return nullptr; }
llvm::Value* codegen(llvm::Module* module, llvm::IRBuilderBase* builder) override
{
return nullptr;
}

std::unique_ptr<IAstNode> clone() override;
};
Expand Down Expand Up @@ -77,14 +80,21 @@ namespace stride::ast

std::string to_string() override;

llvm::Value* codegen(llvm::Module* module, llvm::IRBuilderBase* builder) override { return nullptr; }
llvm::Value* codegen(llvm::Module* module, llvm::IRBuilderBase* builder) override
{
return nullptr;
}

std::unique_ptr<IAstNode> clone() override;

void resolve_forward_references(llvm::Module* module, llvm::IRBuilderBase* builder) override;
};

std::unique_ptr<AstEnumerableMember> parse_enumerable_member(
const std::shared_ptr<ParsingContext>& context,
TokenSet& set);
TokenSet& set,
size_t element_index
);

std::unique_ptr<AstEnumerable> parse_enumerable_declaration(
const std::shared_ptr<ParsingContext>& context,
Expand Down
Loading
Loading