Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Bug while processing "%" symbol #10

Open
wizard-lgtm opened this issue Mar 19, 2025 · 1 comment
Open

Bug while processing "%" symbol #10

wizard-lgtm opened this issue Mar 19, 2025 · 1 comment
Assignees
Labels
bug Something isn't working
Milestone

Comments

@wizard-lgtm
Copy link
Owner

==== Preprocessed Code ====
// math_utils.HC - Basic math utilities
U0 PrintMathInfo(I64 num) {
  Print("%d squared is %d\n", num, SQUARE(num));
  Print("%d cubed is %d\n", num, CUBE(num));
}

U0 PrintCircleInfo(F64 radius) {

  
  Print("Circle with radius %f:\n", radius);
  Print("  Circumference: %f\n", 2 * PI * radius);
  Print("  Area: %f\n", PI * SQUARE(radius));
}


============================
==== Running Lexer ====
==== Tokens ====
TOKEN: Type: COMMENT, value: // math_utils.HC - Basic math utilities, line: 1, column: 0
TOKEN: Type: KEYWORD, value: U0, line: 2, column: 0
TOKEN: Type: LITERAL, value: PrintMathInfo, line: 2, column: 3
TOKEN: Type: SEPERATOR, value: (, line: 2, column: 16
TOKEN: Type: KEYWORD, value: I64, line: 2, column: 17
TOKEN: Type: LITERAL, value: num, line: 2, column: 21
TOKEN: Type: SEPERATOR, value: ), line: 2, column: 24
TOKEN: Type: SEPERATOR, value: {, line: 2, column: 26
TOKEN: Type: LITERAL, value: Print, line: 3, column: 2
TOKEN: Type: SEPERATOR, value: (, line: 3, column: 7
TOKEN: Type: OPERATOR, value: %, line: 3, column: 9
TOKEN: Type: LITERAL, value: d, line: 3, column: 10
TOKEN: Type: LITERAL, value: squared, line: 3, column: 12
TOKEN: Type: LITERAL, value: is, line: 3, column: 20
TOKEN: Type: OPERATOR, value: %, line: 3, column: 23
TOKEN: Type: LITERAL, value: d, line: 3, column: 24
TOKEN: Type: LITERAL, value: n, line: 3, column: 26
TOKEN: Type: SEPERATOR, value: ,, line: 3, column: 28
TOKEN: Type: LITERAL, value: num, line: 3, column: 30
TOKEN: Type: SEPERATOR, value: ,, line: 3, column: 33
TOKEN: Type: LITERAL, value: SQUARE, line: 3, column: 35
TOKEN: Type: SEPERATOR, value: (, line: 3, column: 41
TOKEN: Type: LITERAL, value: num, line: 3, column: 42
TOKEN: Type: SEPERATOR, value: ), line: 3, column: 45
TOKEN: Type: SEPERATOR, value: ), line: 3, column: 46
TOKEN: Type: SEPERATOR, value: ;, line: 3, column: 47
TOKEN: Type: LITERAL, value: Print, line: 4, column: 2
TOKEN: Type: SEPERATOR, value: (, line: 4, column: 7
TOKEN: Type: OPERATOR, value: %, line: 4, column: 9
TOKEN: Type: LITERAL, value: d, line: 4, column: 10
TOKEN: Type: LITERAL, value: cubed, line: 4, column: 12
TOKEN: Type: LITERAL, value: is, line: 4, column: 18
TOKEN: Type: OPERATOR, value: %, line: 4, column: 21
TOKEN: Type: LITERAL, value: d, line: 4, column: 22
TOKEN: Type: LITERAL, value: n, line: 4, column: 24
TOKEN: Type: SEPERATOR, value: ,, line: 4, column: 26
TOKEN: Type: LITERAL, value: num, line: 4, column: 28
TOKEN: Type: SEPERATOR, value: ,, line: 4, column: 31
TOKEN: Type: LITERAL, value: CUBE, line: 4, column: 33
TOKEN: Type: SEPERATOR, value: (, line: 4, column: 37
TOKEN: Type: LITERAL, value: num, line: 4, column: 38
TOKEN: Type: SEPERATOR, value: ), line: 4, column: 41
TOKEN: Type: SEPERATOR, value: ), line: 4, column: 42
TOKEN: Type: SEPERATOR, value: ;, line: 4, column: 43
TOKEN: Type: SEPERATOR, value: }, line: 5, column: 0
TOKEN: Type: KEYWORD, value: U0, line: 7, column: 0
TOKEN: Type: LITERAL, value: PrintCircleInfo, line: 7, column: 3
TOKEN: Type: SEPERATOR, value: (, line: 7, column: 18
TOKEN: Type: KEYWORD, value: F64, line: 7, column: 19
TOKEN: Type: LITERAL, value: radius, line: 7, column: 23
TOKEN: Type: SEPERATOR, value: ), line: 7, column: 29
TOKEN: Type: SEPERATOR, value: {, line: 7, column: 31
TOKEN: Type: LITERAL, value: Print, line: 10, column: 2
TOKEN: Type: SEPERATOR, value: (, line: 10, column: 7
TOKEN: Type: LITERAL, value: Circle, line: 10, column: 9
TOKEN: Type: LITERAL, value: with, line: 10, column: 16
TOKEN: Type: LITERAL, value: radius, line: 10, column: 21
TOKEN: Type: OPERATOR, value: %, line: 10, column: 28
TOKEN: Type: LITERAL, value: f, line: 10, column: 29
TOKEN: Type: SEPERATOR, value: :, line: 10, column: 30
TOKEN: Type: LITERAL, value: n, line: 10, column: 32
TOKEN: Type: SEPERATOR, value: ,, line: 10, column: 34
TOKEN: Type: LITERAL, value: radius, line: 10, column: 36
TOKEN: Type: SEPERATOR, value: ), line: 10, column: 42
TOKEN: Type: SEPERATOR, value: ;, line: 10, column: 43
TOKEN: Type: LITERAL, value: Print, line: 11, column: 2
TOKEN: Type: SEPERATOR, value: (, line: 11, column: 7
TOKEN: Type: LITERAL, value: Circumference, line: 11, column: 11
TOKEN: Type: SEPERATOR, value: :, line: 11, column: 24
TOKEN: Type: OPERATOR, value: %, line: 11, column: 26
TOKEN: Type: LITERAL, value: f, line: 11, column: 27
TOKEN: Type: LITERAL, value: n, line: 11, column: 29
TOKEN: Type: SEPERATOR, value: ,, line: 11, column: 31
TOKEN: Type: LITERAL, value: 2, line: 11, column: 33
TOKEN: Type: OPERATOR, value: *, line: 11, column: 35
TOKEN: Type: LITERAL, value: PI, line: 11, column: 37
TOKEN: Type: OPERATOR, value: *, line: 11, column: 40
TOKEN: Type: LITERAL, value: radius, line: 11, column: 42
TOKEN: Type: SEPERATOR, value: ), line: 11, column: 48
TOKEN: Type: SEPERATOR, value: ;, line: 11, column: 49
TOKEN: Type: LITERAL, value: Print, line: 12, column: 2
TOKEN: Type: SEPERATOR, value: (, line: 12, column: 7
TOKEN: Type: LITERAL, value: Area, line: 12, column: 11
TOKEN: Type: SEPERATOR, value: :, line: 12, column: 15
TOKEN: Type: OPERATOR, value: %, line: 12, column: 17
TOKEN: Type: LITERAL, value: f, line: 12, column: 18
TOKEN: Type: LITERAL, value: n, line: 12, column: 20
TOKEN: Type: SEPERATOR, value: ,, line: 12, column: 22
TOKEN: Type: LITERAL, value: PI, line: 12, column: 24
TOKEN: Type: OPERATOR, value: *, line: 12, column: 27
TOKEN: Type: LITERAL, value: SQUARE, line: 12, column: 29
TOKEN: Type: SEPERATOR, value: (, line: 12, column: 35
TOKEN: Type: LITERAL, value: radius, line: 12, column: 36
TOKEN: Type: SEPERATOR, value: ), line: 12, column: 42
TOKEN: Type: SEPERATOR, value: ), line: 12, column: 43
TOKEN: Type: SEPERATOR, value: ;, line: 12, column: 44
TOKEN: Type: SEPERATOR, value: }, line: 13, column: 0
================
==== Running AST Parser ====
Caused token: Token(type=OPERATOR, value='%', line=3, column=9)
Caused token: Token(type=OPERATOR, value='%', line=3, column=9)
Traceback (most recent call last):
  File "/home/cobain/hhcc/src/astparser2.py", line 324, in block
    node = self.parse_statement(inside_block=True)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/home/cobain/hhcc/src/astparser2.py", line 846, in parse_statement
    return self.function_call()
           ^^^^^^^^^^^^^^^^^^^^
  File "/home/cobain/hhcc/src/astparser2.py", line 544, in function_call
    arg = self.parse_expression()
          ^^^^^^^^^^^^^^^^^^^^^^^
  File "/home/cobain/hhcc/src/astparser2.py", line 175, in parse_expression
    return self.parse_binary_expression()
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/home/cobain/hhcc/src/astparser2.py", line 191, in parse_binary_expression
    left = self.parse_primary_expression()
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/home/cobain/hhcc/src/astparser2.py", line 314, in parse_primary_expression
    self.syntax_error("Unexpected token in expression", current)
  File "/home/cobain/hhcc/src/astparser2.py", line 52, in syntax_error
    raise Exception(f"Syntax Error: {message} at line {token.line}, column {token.column}\n"
Exception: Syntax Error: Unexpected token in expression at line 3, column 9
[ERROR: Line out of range]
         ^
@wizard-lgtm wizard-lgtm added the bug Something isn't working label Mar 19, 2025
@wizard-lgtm wizard-lgtm self-assigned this Mar 19, 2025
@wizard-lgtm wizard-lgtm added this to the AST Parser milestone Mar 19, 2025
@wizard-lgtm
Copy link
Owner Author

Probably we don't handle strings.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
bug Something isn't working
Projects
None yet
Development

No branches or pull requests

1 participant