abc プロジェクト
21.10. MakeTokStrTbl 関数説明 |
関数名 | MakeTokStrTbl |
定義ファイル名 | pass1.cpp |
定義行 | 585 |
宣言形式 | void MakeTokStrTbl ( TStringList * TokStrTbl ) |
概要 | トークン名と、TokIdの対応テーブルを作成する。 作成したテーブルは、字句解析で使用される。 |
戻り値 | なし |
パラメタ説明 | TokStrTbl 作成するトーン名とTokIdの対応テーブル格納先。 |
機能説明 | |
備考 | |
呼出し元関数一覧表
呼出し先関数一覧表
|
名称 |
定義ファイル名 |
定義行 |
1 |
AddObject |
|
|
2 |
Sort |
|
|
関数論理チャート
| +--------------------------------------------+
585 +--+ void MakeTokStrTbl(TStringList *TokStrTbl) |
586 | { |
+--+-----------------------------------------+
587 +--- // キーワード(単語)
588 |
589 | // プログラム関連
590 +--- TokStrTbl->AddObject("PROGRAM",(TObject *)tid_PROGRAM);
591 +--- TokStrTbl->AddObject("SUBROUTINE",(TObject *)tid_SUBROUTINE);
592 +--- TokStrTbl->AddObject("FUNCTION",(TObject *)tid_FUNCTION);
593 +--- TokStrTbl->AddObject("MODULE",(TObject *)tid_MODULE);
594 +--- TokStrTbl->AddObject("INTERFACE",(TObject *)tid_INTERFACE);
595 +--- TokStrTbl->AddObject("CONTAINS",(TObject *)tid_CONTAINS);
596 +--- TokStrTbl->AddObject("USE",(TObject *)tid_USE);
597 +--- TokStrTbl->AddObject("INCLUDE",(TObject *)tid_INCLUDE);
598 +--- // データ宣言
599 +--- TokStrTbl->AddObject("COMMON",(TObject *)tid_COMMON);
600 +--- TokStrTbl->AddObject("INTEGER",(TObject *)tid_INTEGER);
601 +--- TokStrTbl->AddObject("REAL",(TObject *)tid_REAL);
602 +--- TokStrTbl->AddObject("DOUBLEPRECISION",(TObject *)tid_DOUBLEPRECISION);
603 +--- TokStrTbl->AddObject("CHARACTER",(TObject *)tid_CHARACTER);
604 +--- TokStrTbl->AddObject("LOGICAL",(TObject *)tid_LOGICAL);
605 +--- TokStrTbl->AddObject("COMPLEX",(TObject *)tid_COMPLEX);
606 +--- TokStrTbl->AddObject("IMPLICIT",(TObject *)tid_IMPLICIT);
607 +--- TokStrTbl->AddObject("TYPE",(TObject *)tid_TYPE);
608 +--- TokStrTbl->AddObject("NAMELIST",(TObject *)tid_NAMELIST);
609 +--- TokStrTbl->AddObject("ALLOCATABLE",(TObject *)tid_ALLOCATABLE);
610 +--- TokStrTbl->AddObject("POINTER",(TObject *)tid_POINTER);
611 +--- TokStrTbl->AddObject("TARGET",(TObject *)tid_TARGET);
612 +--- TokStrTbl->AddObject("SAVE",(TObject *)tid_SAVE);
613 +--- TokStrTbl->AddObject("PRIVATE",(TObject *)tid_PRIVATE);
614 +--- TokStrTbl->AddObject("PUBLIC",(TObject *)tid_PUBLIC);
615 +--- TokStrTbl->AddObject("EXTERNAL",(TObject *)tid_EXTERNAL);
616 +--- TokStrTbl->AddObject("INTRINSIC",(TObject *)tid_INTRINSIC);
617 +--- TokStrTbl->AddObject("INTENT",(TObject *)tid_INTENT);
618 +--- TokStrTbl->AddObject("OPTIONAL",(TObject *)tid_OPTIONAL);
619 +--- TokStrTbl->AddObject("WHERE",(TObject *)tid_WHERE);
620 +--- // 動的記憶割付け
621 +--- TokStrTbl->AddObject("ALLOCATE",(TObject *)tid_ALLOCATE);
622 +--- TokStrTbl->AddObject("DEALLOCATE",(TObject *)tid_DEALLOCATE);
623 +--- TokStrTbl->AddObject("NULLIFY",(TObject *)tid_NULLIFY);
624 +--- // 制御文
625 +--- TokStrTbl->AddObject("IF",(TObject *)tid_IF);
626 +--- TokStrTbl->AddObject("THEN",(TObject *)tid_THEN);
627 +--- TokStrTbl->AddObject("ELSE",(TObject *)tid_ELSE);
628 +--- TokStrTbl->AddObject("ELSEIF",(TObject *)tid_ELSEIF);
629 +--- TokStrTbl->AddObject("ENDIF",(TObject *)tid_ENDIF);
630 +--- TokStrTbl->AddObject("DO",(TObject *)tid_DO);
631 +--- TokStrTbl->AddObject("ENDDO",(TObject *)tid_ENDDO);
632 +--- TokStrTbl->AddObject("SELECT",(TObject *)tid_SELECT);
633 +--- TokStrTbl->AddObject("CASE",(TObject *)tid_CASE);
634 +--- TokStrTbl->AddObject("GOTO",(TObject *)tid_GOTO);
635 +--- TokStrTbl->AddObject("DOWHILE",(TObject *)tid_DOWHILE);
636 +--- TokStrTbl->AddObject("CALL",(TObject *)tid_CALL);
637 +--- TokStrTbl->AddObject("RETURN",(TObject *)tid_RETURN);
638 +--- TokStrTbl->AddObject("STOP",(TObject *)tid_STOP);
639 +--- TokStrTbl->AddObject("END",(TObject *)tid_END);
640 +--- // 入出力
641 +--- TokStrTbl->AddObject("READ",(TObject *)tid_READ);
642 +--- TokStrTbl->AddObject("WRITE",(TObject *)tid_WRITE);
643 +--- TokStrTbl->AddObject("PRINT",(TObject *)tid_PRINT);
644 +--- TokStrTbl->AddObject("BACKSPACE",(TObject *)tid_BACKSPACE);
645 +--- TokStrTbl->AddObject("INQUIRE",(TObject *)tid_INQUIRE);
646 +--- TokStrTbl->AddObject("REWIND",(TObject *)tid_REWIND);
647 +--- TokStrTbl->AddObject("CLOSE",(TObject *)tid_CLOSE);
648 +--- TokStrTbl->AddObject("OPEN",(TObject *)tid_OPEN);
649 +--- TokStrTbl->AddObject("ENDFILE",(TObject *)tid_ENDFILE);
650 +--- TokStrTbl->AddObject("FORMAT",(TObject *)tid_FORMAT);
651 |
652 +--- // その他
653 +--- TokStrTbl->AddObject("ASSOCIATED",(TObject *)tid_ASSOCIATED);
654 +--- TokStrTbl->AddObject("CONTINUE",(TObject *)tid_CONTINUE);
655 +--- TokStrTbl->AddObject("CYCLE",(TObject *)tid_CYCLE);
656 +--- TokStrTbl->AddObject("DATA",(TObject *)tid_DATA);
657 +--- TokStrTbl->AddObject("DIMENSION",(TObject *)tid_DIMENSION);
658 +--- TokStrTbl->AddObject("EXIT",(TObject *)tid_EXIT);
659 +--- TokStrTbl->AddObject("PARAMETER",(TObject *)tid_PARAMETER);
660 |
661 +--- // キーワード(文字)
662 +--- TokStrTbl->AddObject(",",(TObject *)tid_Kannma);
663 +--- TokStrTbl->AddObject(";",(TObject *)tid_LineEnd);
664 +--- TokStrTbl->AddObject(":",(TObject *)tid_Koron);
665 +--- TokStrTbl->AddObject("::",(TObject *)tid_KoronKoron);
666 |
667 +--- // 演算子
668 +--- TokStrTbl->AddObject("=",(TObject *)tid_Set);
669 +--- TokStrTbl->AddObject("(",(TObject *)tid_Kakko);
670 +--- TokStrTbl->AddObject(")",(TObject *)tid_Kokka);
671 +--- TokStrTbl->AddObject("+",(TObject *)tid_Opr);
672 +--- TokStrTbl->AddObject("-",(TObject *)tid_Opr);
673 +--- TokStrTbl->AddObject("*",(TObject *)tid_Opr);
674 +--- TokStrTbl->AddObject("/",(TObject *)tid_Opr);
675 +--- TokStrTbl->AddObject("**",(TObject *)tid_Opr);
676 +--- TokStrTbl->AddObject("<",(TObject *)tid_Opr);
677 +--- TokStrTbl->AddObject(".LT.",(TObject *)tid_Opr);
678 +--- TokStrTbl->AddObject("<=",(TObject *)tid_Opr);
679 +--- TokStrTbl->AddObject(".LR.",(TObject *)tid_Opr);
680 +--- TokStrTbl->AddObject(">",(TObject *)tid_Opr);
681 +--- TokStrTbl->AddObject(".GT.",(TObject *)tid_Opr);
682 +--- TokStrTbl->AddObject(">=",(TObject *)tid_Opr);
683 +--- TokStrTbl->AddObject(".GE.",(TObject *)tid_Opr);
684 +--- TokStrTbl->AddObject("==",(TObject *)tid_Opr);
685 +--- TokStrTbl->AddObject(".EQ.",(TObject *)tid_Opr);
686 +--- TokStrTbl->AddObject("/=",(TObject *)tid_Opr);
687 +--- TokStrTbl->AddObject(".NE.",(TObject *)tid_Opr);
688 |
689 +--- TokStrTbl->AddObject(".NOT.",(TObject *)tid_Opr);
690 +--- TokStrTbl->AddObject(".AND.",(TObject *)tid_Opr);
691 +--- TokStrTbl->AddObject(".OR.",(TObject *)tid_Opr);
692 +--- TokStrTbl->AddObject(".EQV.",(TObject *)tid_Opr);
693 +--- TokStrTbl->AddObject(".NEQV.",(TObject *)tid_Opr);
694 +--- TokStrTbl->AddObject("//",(TObject *)tid_Opr);
695 |
696 +--- TokStrTbl->Sort();
+-+---+
697 | } |
+-----+