From 36730daf71661c0125564b5244339b5397fd031a Mon Sep 17 00:00:00 2001 From: alterdekim Date: Tue, 5 Nov 2024 02:40:18 +0300 Subject: [PATCH] Start of Parser modified: app/Main.hs deleted: app/NewParser.hs modified: app/Parser.hs modified: as/test.as --- app/Main.hs | 2 +- app/NewParser.hs | 11 ----------- app/Parser.hs | 18 ++++++++++++++++++ as/test.as | 12 +----------- 4 files changed, 20 insertions(+), 23 deletions(-) delete mode 100644 app/NewParser.hs diff --git a/app/Main.hs b/app/Main.hs index 97272f4..78fc41a 100644 --- a/app/Main.hs +++ b/app/Main.hs @@ -2,7 +2,7 @@ module Main where import System.IO import Lexer ---import Parser +import Parser {- main = do diff --git a/app/NewParser.hs b/app/NewParser.hs deleted file mode 100644 index a1af94b..0000000 --- a/app/NewParser.hs +++ /dev/null @@ -1,11 +0,0 @@ -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 = [] \ No newline at end of file diff --git a/app/Parser.hs b/app/Parser.hs index d359341..ce7c62c 100644 --- a/app/Parser.hs +++ b/app/Parser.hs @@ -2,3 +2,21 @@ module Parser where import Lexer (Token (..), TokenType (..) ) +data StmtType = Primary | Numeric deriving (Show, Eq) + +class (Show a) => TreeNode a where + stype :: a -> StmtType + children :: a -> [a] + +instance TreeNode StmtType where + stype Primary = Primary + children Primary = [] + +--data PrimaryNode = PrimaryNode { val :: [Char] } deriving (TreeNode) + +parseTokens :: [Token] -> TreeNode +parseTokens tt + | k == Literal = PrimaryNode Primary [] (value t) + | otherwise = TreeNode Parser.Numeric [] + where t = head tt + k = token_type t \ No newline at end of file diff --git a/as/test.as b/as/test.as index ef4120b..064a97a 100644 --- a/as/test.as +++ b/as/test.as @@ -1,11 +1 @@ -package { - import flash.text.TextField; - import flash.display.Sprite; - - public class TextHello extends Sprite { - var l: int = 10.5; - if( l >= 4.0 ) { - l += 3; - } - } -} \ No newline at end of file +var i: int = 0; \ No newline at end of file