Skip to content

Latest commit

 

History

History
60 lines (53 loc) · 1.81 KB

SYNTAX.md

File metadata and controls

60 lines (53 loc) · 1.81 KB
  • function declaration
  • function call
  • function return
  • function with arguementa
  • if, else, elif
  • while loop
  • continue
  • break
  • Implement built-in functions
  • references
  • reference as function parameter
  • assign variable from refrence
  • assign reference from variable
  • refrence variables
  • maybe I will need to declare arguments as variables inside function declaration
  • check all conditions to be boolean

  • for loops

  • use return with refrence

  • math operations with refrence

  • check function existance in generate_ir

  • import files in tokenize

  • data types: int, char, float, bigInt, bigFloat

  • arrays

  • structs: attributes, memeber function, operator overloading

  • logic operator for all data types

  • math operator for all data types

  • assign struct with value, and with refrence

  • try, catch

  • switch, case

  • input, output, filesystem

  • check functions compatibilty

  • test with c libraries

  • test function with lot of arguments

  • test all possible cases that can be handled, so the code does not crash

  • implement output

  • (To be checked if neccessary) set registers for function argument , in generate_ir

  • every loop inside source code should check found_error

  • void function need to be checked

  • global variable

  • when you finish the code check this approach, setting ptr at the end before generatin assembly code

  • to handle segvaults, try implement an approach that fork() then execute the program inside child process and read from its stderr

  • check all dat type are together in all places

  • try using memset/memcpy to assign struct, it would be better

  • This will generate and print:

    • Abstract Syntax Tree (AST)
    • Intermediate Representation (IR)
    • Assembly Code
    • fix for: AddressSanitizer:DEADLYSIGNAL
      • echo 0 | sudo tee /proc/sys/kernel/randomize_va_space
  • Check:

    • Alfred V aho
    • Yacc
    • Ll1