Purple  0.1
Standard Language Specification
translate.h
Go to the documentation of this file.
1
8#ifndef TRANSLATE_H
9#define TRANSLATE_H
10
11#include "parse.h"
12#include "translate/llvm.h"
13#include "tree.h"
14
16
17LLVMValue ast_to_llvm(ASTNode* n, LLVMValue llvm_value, TokenType parent_operation);
18void generate_llvm(void);
19
20#endif /* TRANSLATE_H */
Function headers for LLVM-IR emission.
Function headers for parsing and operator precedence values.
TokenType
Types of scannable tokens.
Definition: scan.h:20
Component of the abstract syntax tree built during parsing.
Definition: tree.h:20
Node of a linked list containing information about required stack allocation for a piece of data....
Definition: llvm_stack_entry.h:28
Value returned by ast_to_llvm.
Definition: llvm.h:56
LLVMStackEntryNode * determine_binary_expression_stack_allocation(ASTNode *root)
Perform a DFS on an AST to determine the stack allocation needed for a binary expression.
Definition: translate.c:43
LLVMValue ast_to_llvm(ASTNode *n, LLVMValue llvm_value, TokenType parent_operation)
Generates LLVM-IR from a given AST.
Definition: translate.c:250
void generate_llvm(void)
Wrapper function for generating LLVM.
Definition: translate.c:443
Function headers for abstract syntax tree parsing.