Skip to content
Draft
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
2 changes: 1 addition & 1 deletion grey_compiler/crates/grey_lang/src/types.rs
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@
//! This module provides basic type checking for Grey programs.

use crate::ast::*;
use crate::diagnostics::{Diagnostic, DiagnosticError};
use crate::diagnostics::Diagnostic;

/// Typed program with all types resolved
#[derive(Debug, Clone, PartialEq)]
Expand Down
77 changes: 77 additions & 0 deletions grey_compiler/fix_issues.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,77 @@
#!/usr/bin/env python3

# Script to fix grey_compiler build issues

import re

# Fix types.rs
print("Fixing types.rs...")

with open('crates/grey_lang/src/types.rs', 'r') as f:
types_content = f.read()

# Fix 1: Remove unused DiagnosticError import
types_content = re.sub(r'use crate::diagnostics::\{Diagnostic, DiagnosticError\};',
'use crate::diagnostics::Diagnostic;',
types_content)

# Fix 2: Add & to param.param_type
types_content = re.sub(r'self\.convert_ast_type\(param\.param_type\)\?;',
'self.convert_ast_type(¶m.param_type)?;',
types_content)

with open('crates/grey_lang/src/types.rs', 'w') as f:
f.write(types_content)

# Fix lib.rs
print("Fixing lib.rs...")

with open('crates/grey_lang/src/lib.rs', 'r') as f:
lib_content = f.read()

# Fix 3: Remove unused DiagnosticError import
lib_content = re.sub(r'use crate::diagnostics::\{DiagnosticError, Diagnostic\};',
'use crate::diagnostics::Diagnostic;',
lib_content)

with open('crates/grey_lang/src/lib.rs', 'w') as f:
f.write(lib_content)

# Fix lexer.rs
print("Fixing lexer.rs...")

with open('crates/grey_lang/src/lexer.rs', 'r') as f:
lexer_content = f.read()

# Fix 4: Remove unnecessary mut
lexer_content = re.sub(r'let mut chars: Vec<char> = source\.chars\(\)\.collect\(\);',
'let chars: Vec<char> = source.chars().collect();',
lexer_content)

# Fix 5: Remove duplicate '<' pattern (line 298)
# Find the duplicate pattern and remove it
lines = lexer_content.split('\n')
fixed_lines = []
skip_next = False

for i, line in enumerate(lines):
if i == 297: # Line 298 in 1-indexed (0-indexed is 297)
# Check if this is the duplicate '<' pattern
if "'<' => {" in line and i > 160: # Skip the first one around line 164
print(f"Removing duplicate '<' pattern at line {i+1}")
skip_next = True
continue
elif skip_next and line.strip() == "":
skip_next = False
continue
elif skip_next:
continue

fixed_lines.append(line)

lexer_content = '\n'.join(fixed_lines)

with open('crates/grey_lang/src/lexer.rs', 'w') as f:
f.write(lexer_content)

print("All fixes applied!")
75 changes: 75 additions & 0 deletions grey_compiler/fix_issues_simple.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,75 @@
#!/usr/bin/env python3

# Script to fix grey_compiler build issues correctly

import re

# Fix types.rs
print("Fixing types.rs...")

with open('crates/grey_lang/src/types.rs', 'r') as f:
content = f.read()

# Fix 1: Remove unused DiagnosticError import
content = content.replace('use crate::diagnostics::{Diagnostic, DiagnosticError};',
'use crate::diagnostics::Diagnostic;')

# Fix 2: Add & to param.param_type
content = content.replace('self.convert_ast_type(param.param_type)?;',
'self.convert_ast_type(¶m.param_type)?;')

with open('crates/grey_lang/src/types.rs', 'w') as f:
f.write(content)

print("Fixed types.rs")

# Fix lib.rs
print("Fixing lib.rs...")

with open('crates/grey_lang/src/lib.rs', 'r') as f:
content = f.read()

# Fix 3: Remove unused DiagnosticError import
content = content.replace('use crate::diagnostics::{DiagnosticError, Diagnostic};',
'use crate::diagnostics::Diagnostic;')

with open('crates/grey_lang/src/lib.rs', 'w') as f:
f.write(content)

print("Fixed lib.rs")

# Fix lexer.rs
print("Fixing lexer.rs...")

with open('crates/grey_lang/src/lexer.rs', 'r') as f:
lines = f.readlines()

# Fix 4: Remove unnecessary mut
for i, line in enumerate(lines):
if 'let mut chars: Vec<char> = source.chars().collect();' in line:
lines[i] = line.replace('let mut chars', 'let chars')
print(f"Fixed unnecessary mut at line {i+1}")

# Fix 5: Remove duplicate '<' pattern (line 298)
new_lines = []
skip_until_line = -1

for i, line in enumerate(lines):
# Skip lines that are part of the duplicate '<' pattern
if skip_until_line > i:
continue

# Check for the start of duplicate LessThan pattern (around line 298)
if i == 297 and "'<' => {" in line:
# Skip this pattern - it's 7 lines total including the closing brace
print(f"Removing duplicate '<' LessThan pattern starting at line {i+1}")
skip_until_line = i + 7 # Skip 7 lines total
continue

new_lines.append(line)

with open('crates/grey_lang/src/lexer.rs', 'w') as f:
f.writelines(new_lines)

print("Fixed lexer.rs")
print("All fixes applied!")
83 changes: 83 additions & 0 deletions grey_compiler/fix_issues_v2.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,83 @@
#!/usr/bin/env python3

# Script to fix grey_compiler build issues correctly

import re

# Fix types.rs
print("Fixing types.rs...")

with open('crates/grey_lang/src/types.rs', 'r') as f:
lines = f.readlines()

# Fix 1: Remove unused DiagnosticError import
for i, line in enumerate(lines):
if line.strip() == 'use crate::diagnostics::{Diagnostic, DiagnosticError};':
lines[i] = 'use crate::diagnostics::Diagnostic;\n'
print(f"Fixed unused import at line {i+1}")

# Fix 2: Add & to param.param_type (convert to reference)
for i, line in enumerate(lines):
if 'self.convert_ast_type(param.param_type)?;' in line:
lines[i] = line.replace('param.param_type', 'param.param_type')
# The above keeps it the same, we need to add & manually
# Let's do a proper replacement
lines[i] = re.sub(r'self\.convert_ast_type\(param\.param_type\)\?;',
'self.convert_ast_type(¶m.param_type)?;',
line)
print(f"Fixed type reference at line {i+1}")

with open('crates/grey_lang/src/types.rs', 'w') as f:
f.writelines(lines)

# Fix lib.rs
print("Fixing lib.rs...")

with open('crates/grey_lang/src/lib.rs', 'r') as f:
lines = f.readlines()

# Fix 3: Remove unused DiagnosticError import
for i, line in enumerate(lines):
if line.strip() == 'use crate::diagnostics::{DiagnosticError, Diagnostic};':
lines[i] = 'use crate::diagnostics::Diagnostic;\n'
print(f"Fixed unused import at line {i+1}")

with open('crates/grey_lang/src/lib.rs', 'w') as f:
f.writelines(lines)

# Fix lexer.rs
print("Fixing lexer.rs...")

with open('crates/grey_lang/src/lexer.rs', 'r') as f:
lines = f.readlines()

# Fix 4: Remove unnecessary mut
for i, line in enumerate(lines):
if 'let mut chars: Vec<char> = source.chars().collect();' in line:
lines[i] = line.replace('let mut chars', 'let chars')
print(f"Fixed unnecessary mut at line {i+1}")

# Fix 5: Remove duplicate '<' pattern (line 298)
# Find and remove the second '<' pattern that creates LessThan token
new_lines = []
skip_lines = 0

for i, line in enumerate(lines):
if skip_lines > 0:
skip_lines -= 1
continue

# Check for the duplicate '<' pattern that creates LessThan token
# This should be around line 298 (0-indexed 297)
if i == 297 and "'<' => {" in line:
# Skip this duplicate pattern (7 lines total)
print(f"Removing duplicate '<' pattern starting at line {i+1}")
skip_lines = 6 # Skip the next 6 lines to remove the entire pattern
continue

new_lines.append(line)

with open('crates/grey_lang/src/lexer.rs', 'w') as f:
f.writelines(new_lines)

print("All fixes applied!")
Binary file not shown.
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
This file has an mtime of when this was started.
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
01ed8e5f8ef4a206
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
{"rustc":4758242423518056681,"features":"[\"default\", \"std\"]","declared_features":"[\"alloc\", \"default\", \"std\", \"unstable\"]","target":11922006449871018939,"profile":2241668132362809309,"path":28754166149569271,"deps":[[11369524874753292000,"diff",false,13555635395718021918],[11462695054828705146,"yansi",false,3935961607873616109]],"local":[{"CheckDepInfo":{"dep_info":"debug/.fingerprint/pretty_assertions-b073fe952b36d524/dep-lib-pretty_assertions","checksum":false}}],"rustflags":[],"config":2069994364910194474,"compile_kind":0}
Binary file not shown.
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
This file has an mtime of when this was started.
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
edd8e18e3a589f36
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
{"rustc":4758242423518056681,"features":"[\"alloc\", \"default\", \"std\"]","declared_features":"[\"_nightly\", \"alloc\", \"default\", \"detect-env\", \"detect-tty\", \"hyperlink\", \"is-terminal\", \"std\"]","target":7022233409860942053,"profile":2241668132362809309,"path":1793592471605370843,"deps":[],"local":[{"CheckDepInfo":{"dep_info":"debug/.fingerprint/yansi-1efbab302032e9df/dep-lib-yansi","checksum":false}}],"rustflags":[],"config":2069994364910194474,"compile_kind":0}
Binary file not shown.
Binary file not shown.
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
/home/engine/project/grey_compiler/target/debug/deps/pretty_assertions-b073fe952b36d524.d: /home/engine/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/pretty_assertions-1.4.1/src/lib.rs /home/engine/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/pretty_assertions-1.4.1/src/printer.rs

/home/engine/project/grey_compiler/target/debug/deps/libpretty_assertions-b073fe952b36d524.rmeta: /home/engine/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/pretty_assertions-1.4.1/src/lib.rs /home/engine/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/pretty_assertions-1.4.1/src/printer.rs

/home/engine/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/pretty_assertions-1.4.1/src/lib.rs:
/home/engine/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/pretty_assertions-1.4.1/src/printer.rs:
14 changes: 14 additions & 0 deletions grey_compiler/target/debug/deps/yansi-1efbab302032e9df.d
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
/home/engine/project/grey_compiler/target/debug/deps/yansi-1efbab302032e9df.d: /home/engine/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/yansi-1.0.1/src/lib.rs /home/engine/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/yansi-1.0.1/src/macros.rs /home/engine/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/yansi-1.0.1/src/windows.rs /home/engine/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/yansi-1.0.1/src/attr_quirk.rs /home/engine/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/yansi-1.0.1/src/style.rs /home/engine/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/yansi-1.0.1/src/color.rs /home/engine/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/yansi-1.0.1/src/paint.rs /home/engine/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/yansi-1.0.1/src/global.rs /home/engine/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/yansi-1.0.1/src/condition.rs /home/engine/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/yansi-1.0.1/src/set.rs

/home/engine/project/grey_compiler/target/debug/deps/libyansi-1efbab302032e9df.rmeta: /home/engine/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/yansi-1.0.1/src/lib.rs /home/engine/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/yansi-1.0.1/src/macros.rs /home/engine/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/yansi-1.0.1/src/windows.rs /home/engine/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/yansi-1.0.1/src/attr_quirk.rs /home/engine/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/yansi-1.0.1/src/style.rs /home/engine/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/yansi-1.0.1/src/color.rs /home/engine/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/yansi-1.0.1/src/paint.rs /home/engine/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/yansi-1.0.1/src/global.rs /home/engine/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/yansi-1.0.1/src/condition.rs /home/engine/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/yansi-1.0.1/src/set.rs

/home/engine/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/yansi-1.0.1/src/lib.rs:
/home/engine/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/yansi-1.0.1/src/macros.rs:
/home/engine/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/yansi-1.0.1/src/windows.rs:
/home/engine/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/yansi-1.0.1/src/attr_quirk.rs:
/home/engine/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/yansi-1.0.1/src/style.rs:
/home/engine/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/yansi-1.0.1/src/color.rs:
/home/engine/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/yansi-1.0.1/src/paint.rs:
/home/engine/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/yansi-1.0.1/src/global.rs:
/home/engine/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/yansi-1.0.1/src/condition.rs:
/home/engine/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/yansi-1.0.1/src/set.rs:
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Loading