view user/soto/log/untitled.md @ 49:fae0d5b27a2d

backup 2021-03-24
author autobackup
date Wed, 24 Mar 2021 00:10:03 +0900
parents e9ba3f9d64c9
children c52930976228
line wrap: on
line source

# 研究目的
- 

# 今週やった事
- kono先生とCbCからset jumpを消そうとしていました

## set jmpを消す
現在のCbCには、set jumpが使われている部分がある。
これを消したい。

型が`jmp_buf`であるものを`int`64個の配列で受け取れるようにする。

` innerRes = CreateDeclStmt(bufII, false, false, DeclSpec::TST_typename, CreateIdentifierInfo("jmp_buf", Loc));`を  
`innerRes = CreateDeclStmt(bufII, false, false, 64, DeclSpec::TST_typename, CreateIdentifierInfo("int", Loc));`

できるようにする

`StmtResult Parser::CreateDeclStmt(IdentifierInfo *II, bool isRetCS, bool copyType, DeclSpec::TST valueType, IdentifierInfo* Name, DeclSpec::TQ TQ){`を  
`StmtResult Parser::CreateDeclStmt(IdentifierInfo *II, bool isRetCS, bool copyType, int array, DeclSpec::TST valueType, IdentifierInfo* Name, DeclSpec::TQ TQ){`
これにする。arrayが追加されただけ

そして`CreateDeclStmt()`に以下を追加。
```CbC
  if (array) {
    DeclSpec FDS(AttrFactory);
    D.AddTypeInfo(DeclaratorChunk::getArray(0,false,false,Actions.ActOnIntegerConstant(Loc,array).get(),Loc, FDS.getConstSpecLoc() ),
            std::move(FDS.getAttributes()), SourceLocation());
  }
```

`AddTypeInfo`を直接書いて解決させよう


# 余談
- 卒業式でした