metasepi / idiomaticca

Translate IDIOMATIC C into human-readable ATS
http://metasepi.org/
GNU Affero General Public License v3.0
3 stars 0 forks source link

Translate regress/noinc/temp_variable #1

Closed master-q closed 5 years ago

master-q commented 5 years ago

The AST is:

Right (CTranslUnit [CFDefExt (CFunDef [CTypeSpec (CIntType (NodeInfo ("regress/noinc/temp_variable/main.c": line 1) (("regress/noinc/temp_variable/main.c": line 1),3) (Name {nameId = 1})))] (CDeclr (Just (Ident "main" 232419565 (NodeInfo ("regress/noinc/temp_variable/main.c": line 1) (("regress/noinc/temp_variable/main.c": line 1),4) (Name {nameId = 0})))) [CFunDeclr (Right ([],False)) [] (NodeInfo ("regress/noinc/temp_variable/main.c": line 1) (("regress/noinc/temp_variable/main.c": line 1),1) (Name {nameId = 3}))] Nothing [] (NodeInfo ("regress/noinc/temp_variable/main.c": line 1) (("regress/noinc/temp_variable/main.c": line 1),4) (Name {nameId = 2}))) [] (CCompound [] [
CBlockDecl
(CDecl [CTypeSpec (CIntType (NodeInfo ("regress/noinc/temp_variable/main.c": line 2) (("regress/noinc/temp_variable/main.c": line 2),3) (Name {nameId = 5})))] [(Just (CDeclr (Just (Ident "input" 247216093 (NodeInfo ("regress/noinc/temp_variable/main.c": line 2) (("regress/noinc/temp_variable/main.c": line 2),5) (Name {nameId = 4})))) [] Nothing [] (NodeInfo ("regress/noinc/temp_variable/main.c": line 2) (("regress/noinc/temp_variable/main.c": line 2),5) (Name {nameId = 6}))),Just (CInitExpr (CConst (CIntConst 1 (NodeInfo ("regress/noinc/temp_variable/main.c": line 2) (("regress/noinc/temp_variable/main.c": line 2),1) (Name {nameId = 7})))) (NodeInfo ("regress/noinc/temp_variable/main.c": line 2) (("regress/noinc/temp_variable/main.c": line 2),1) (Name {nameId = 8}))),Nothing),(Just (CDeclr (Just (Ident "ret" 1913586 (NodeInfo ("regress/noinc/temp_variable/main.c": line 2) (("regress/noinc/temp_variable/main.c": line 2),3) (Name {nameId = 10})))) [] Nothing [] (NodeInfo ("regress/noinc/temp_variable/main.c": line 2) (("regress/noinc/temp_variable/main.c": line 2),3) (Name {nameId = 11}))),Just (CInitExpr (CConst (CIntConst 0 (NodeInfo ("regress/noinc/temp_variable/main.c": line 2) (("regress/noinc/temp_variable/main.c": line 2),1) (Name {nameId = 12})))) (NodeInfo ("regress/noinc/temp_variable/main.c": line 2) (("regress/noinc/temp_variable/main.c": line 2),1) (Name {nameId = 13}))),Nothing)] (NodeInfo ("regress/noinc/temp_variable/main.c": line 2) (("regress/noinc/temp_variable/main.c": line 2),1) (Name {nameId = 9})))
,
CBlockStmt (CReturn (Just (CConst (CIntConst 0 (NodeInfo ("regress/noinc/temp_variable/main.c": line 3) (("regress/noinc/temp_variable/main.c": line 3),1) (Name {nameId = 14}))))) (NodeInfo ("regress/noinc/temp_variable/main.c": line 3) (("regress/noinc/temp_variable/main.c": line 3),1) (Name {nameId = 15})))
]
(NodeInfo ("regress/noinc/temp_variable/main.c": line 1) (("regress/noinc/temp_variable/main.c": line 4),1) (Name {nameId = 16}))) (NodeInfo ("regress/noinc/temp_variable/main.c": line 1) (("regress/noinc/temp_variable/main.c": line 4),1) (Name {nameId = 17})))] (NodeInfo ("regress/noinc/temp_variable/main.c": line 1) (("regress/noinc/temp_variable/main.c": line 4),1) (Name {nameId = 18})))
master-q commented 5 years ago

Temporarily use stack value introduced by var.