new file: .gitignore new file: docs/grammar.md new file: haskell/Lexer.hi renamed: haskell/main.hs -> haskell/Lexer.hs new file: haskell/Lexer.o new file: haskell/Main new file: haskell/Main.hi new file: haskell/Main.hs new file: haskell/Main.o new file: haskell/NewParser.hs new file: haskell/Parser.hi new file: haskell/Parser.hs new file: haskell/Parser.o new file: pascal/arr.pas new file: pascal/modifiers.pas new file: pascal/reserved_words.pas modified: pascal/test.pas
11 lines
418 B
Haskell
11 lines
418 B
Haskell
module Parser (parseIntoTree, TreeNode) where
|
|
|
|
import Lexer (Token (..), TokenType (..) )
|
|
|
|
data NodeName = BinOperator | HaltNode | StringConstant | Constant | Void deriving (Show, Eq)
|
|
data TreeNode = TreeNode {name :: NodeName, children :: [TreeNode], node_val :: [Char]} deriving (Show)
|
|
|
|
parseIntoTree :: [Token] -> [TreeNode]
|
|
parseIntoTree tokens
|
|
| length tokens > 0 = _parseIntoTree tokens
|
|
| otherwise = [] |