Gidsss / UwUIDE

A compiler made to be cute uwu >~<
6 stars 0 forks source link

Feat/uninitialized var const usage error #182

Closed am-cid closed 6 months ago

am-cid commented 6 months ago

closes #163


fn calls

analyzer

lexer

am-cid commented 6 months ago

sample log

sample text file
----------------------------------------
1 |
2 |     gwobaw a-chan~
3 |     cwass Hololive(b-chan) [[
4 |         fwunc sum-chan(c-chan) [[
5 |             wetuwn(b + c)~
6 |         ]]
7 |     ]]
8 |     fwunc mainuwu-san() [[
9 |         b-Hololive = Hololive(a+1)~
10 |         b.sum(a+2)~
11 |         sum(a+3)~
12 |         c-Hololive = Hololive(a)~
13 |         c.sum(a)~
14 |         sum(a)~
15 |     ]]
16 |     fwunc sum-chan(b-chan) [[
17 |         wetuwn(b)~
18 |     ]]
19 |
----------------------------------------
end of file

Non-Math Infix Operand: 'a'
        ______________________
          |     Left value defined here
        2 |     gwobaw a-chan~
          |              ^^^^
          | _____________|
          | |
          | |   Left value evaluates to type: 'san'
        9 | |  a+1
          | |  ^
          | |__|
        ______________________

Non-Math Infix Operand: 'a'
        _______________________
           |    Left value defined here
        2  |     gwobaw a-chan~
           |              ^^^^
           | _____________|
           | |
           | |  Left value evaluates to type: 'san'
        10 | |  a+2
           | |  ^
           | |__|
        _______________________

Non-Math Infix Operand: 'a'
        _______________________
           |    Left value defined here
        2  |     gwobaw a-chan~
           |              ^^^^
           | _____________|
           | |
           | |  Left value evaluates to type: 'san'
        11 | |  a+3
           | |  ^
           | |__|
        _______________________

Call arg type mismatch:
        _______________________________________
           |    'Hololive()' class defined here
        3  |     cwass Hololive(b-chan) [[
           |           ^^^^^^^^
           | __________|
           | |
           | |  'Hololive()' called here
        12 | |        c-Hololive = Hololive(a)~
           | |                     ^^^^^^^^
           | |_____________________|
           |
           |    'Hololive()' class expects 1 argument
           |    EXPECTED  ACTUAL     ARG
           |    ✗ chan    ( san )    a
        _______________________________________

Call arg type mismatch:
        _______________________________________
           |    'Hololive.sum()' class method defined here
        4  |         fwunc sum-chan(c-chan) [[
           |                   ^^^^
           | __________________|
           | |
           | |  'Hololive.sum()' called here
        13 | |        c.sum(a)~
           | |          ^^^
           | |__________|
           |
           |    'Hololive.sum()' class method expects 1 argument
           |    EXPECTED  ACTUAL     ARG
           |    ✗ chan    ( san )    a
        _______________________________________

Call arg type mismatch:
        ___________________________________
           |    'sum()' function defined here
        16 |     fwunc sum-chan(b-chan) [[
           |               ^^^^
           | ______________|
           | |
           | |  'sum()' called here
        14 | |        sum(a)~
           | |        ^^^
           | |________|
           |
           |    'sum()' function expects 1 argument
           |    EXPECTED  ACTUAL     ARG
           |    ✗ chan    ( san )    a
        ___________________________________