�R���p�C���̓�����A�u�����́v�̂��߂̕����񑀍��FJava�ŃR���p�C���̊�b�𗝉�����i5�j�i1/3 �y�[�W�j

» 2007�N05��15�� 00��00�� ���J
[���R���j�C������ЃK�����I]

�@�O����BNF�Ńv���O��������S1s���`���܂����B����́A���̒�`�ɏ]���ċL�q���ꂽ�v���O�������R���p�C������ɓ�����A�ŏ��Ɏ��s���鏈���ł����������ɂ‚��ĉ�������܂��B

�u�����́v�Ƃ͉�����H

�@�O��A�v���O���~���O����S1s�����̂悤�ɒ�`���܂����B

<program> ::= main '{' <expression> '}'
<expression> ::= <term>{ <opeas> <term> }
<term> ::= <factor>{ <opemd> <factor> }
<factor> ::= <number>|( <expression> )
<number> ::= <digit>{<digit>}
<opeas> ::= + | -
<opemd> ::= * | /
<digit> ::= 0|1|2|3|4|5|6|7|8|9

�@���̒�`����AS1s�̃v���O�������\�����镶���񂪕�����܂��B��̓I�ɂ́A��������_�u���N�I�[�e�[�V�����}�[�N�u"�v�ň͂��ĕ\������ƁA"main"�A"{"�A"}"�A"("�A")"�A"+"�A"-"�A"*"�A"/"�A"0"�A"1"�A"2"�A"3"�A"4"�A"5"�A"6"�A"7"�A"8"�A"9"�A" "�ƂȂ�܂��B�Ō�̕�����͋󔒂ł��B�v���O�������R���p�C������ɓ������ẮA�ǂ�ȕ����񂪁A�ǂ����������ԂŋL�q����Ă���̂����d�v�ł��B

�\�[�X�R�[�h����g�[�N���̃��X�g���쐬

�@�L�q���ꂽ�\�[�X�R�[�h�����������ǂ����𔻒肷��ɓ������ẮA���������v���O�������\�����镶����͂ǂ��Ȃ��Ă��邩���m�F����K�v������܂��B

�@�Ⴆ�΁A"a"��"function"�Ƃ������������S1s�ł͎g���Ȃ�������ł�����A�g���Ȃ������񂪏o�Ă������_�Ńv���O�����ɂ̓G���[���܂܂�Ă���Ƃ������Ƃ�������܂��B

�@�R���p�C���ł́A�����������`�F�b�N�����₷�����邽�߂ɁA�����͂Ƃ����������ŏ��ɍs���܂��B�����̓v���O�����́A�\�[�X�R�[�h������̃��X�g�ƌ��Ȃ��āA���ꂩ���g�[�N���̃��X�g�i�g�[�N�����Ƃ������܂��j�𐶐����܂��B

�g�[�N���̎��

�@�v���O���~���O����ɂ����������Ƃ́A���R����ɂ������P���ɑ���������̂ŁA�v���O�������ňӖ��̂��镶����̍ŏ��P�ʂƂȂ���̂ł��B�g�[�N���Ƃ́A���@��̍\���P�ʂŁA"123"�����l�ł����A"main"���\����ƂȂ�܂��B"("��")"�̂悤�Ȋ��ʂ��g�[�N���ł��B

�g�[�N���̃��X�g�𐶐����闝�R

�@�g�[�N���̃��X�g�𐶐����闝�R�́A������̔F���������ȒP�ɂȂ邩��ł��BJava�̕��@���Ƃ��čl���Ă݂܂��傤�B

long length = 256;

�@���̂悤�ȕ����񂪂���Ƃ��ɁA�擪����1��������"l"�A"o"�A�c�c�ƔF����������A�f�[�^�^�i"long"�j�A�ϐ����i"length"�j�A�����L���i"="�j�A���l�i"256"�j�A�Z�~�R�����i";"�j�̃g�[�N���ō\������郊�X�g�Ƃ��Ĉ���������������₷���͂��ł��B

�@�������ꂽ�g�[�N���̃��X�g�́A�����͂̎��Ɏ��s������\������ɂ����āA���@�I�ɐ������̂��`�F�b�N����܂��B�ȒP�ȗ�Ƃ��ẮAS1s�̃\�[�X�R�[�h�́A�ŏ���"main"�Ƃ��������񂩂�n�܂��Ă���K�v������܂��B�ŏ���"makn"�ɂȂ��Ă�����A"msin"�ƂȂ��Ă�����A����̓G���[���Ƃ������ƂɂȂ�܂��B

}1@\[XR[h    g[ÑXg  \ �}1�@�\�[�X�R�[�h �� ������ �� �g�[�N�����X�g �� �\�����

Java��1�s���“ǂݍ��ނɂ́H

�@�����͂����邽�߂ɂ́A�\�[�X�R�[�h���L�q���ꂽ�t�@�C�����J���ăv���O������1�������“ǂޕK�v������܂��B�ł�����A�����͂̃v���O���������̂悤�ɍ쐬���Ă��悢�̂ł����A���ʂ����s���̌��������l���āA1�s���“ǂݍ�����o�b�t�@�����O�����A��������1�������“ǂݍ���ŏ��������܂��B

�@Java��1�s���“ǂݍ��ނ��߂ɂ́Ajava.io.BufferedReader�N���X�̃C���X�^���X���Q�Ƃ���reader���g���āA���̂悤�ɋL�q���܂��B

String s = null;
while ((s = reader.readLine()) != null) {
    current++;
    if (s.length() == 0) {
        continue;
    } else {
        // �g�[�N�����X�g�̍쐬
�i���j
    }
}
Scanner.java�ireadLines���\�b�h�����j

Token�N���X���`����

�@�g�[�N���̃v���O���~���O��ł̕\���ɂ‚��ẮA���낢��ȕ��@������܂����A�����ł�Token�N���X��p�ӂ��邱�Ƃɂ��܂��傤�B���l���\��ꂩ�Ƃ����������t�B�[���htype�ŕێ����܂��Btype�̒l�����l�̏ꍇ�̓t�B�[���hn�ɒl�������A���̂ق��̏ꍇ�̓t�B�[���hs�ɒl�������܂��B

�@�܂��A���̃g�[�N�����o�������s�ԍ���lineNumber�ɕێ����A�g�[�N����lineNumber�s�̐擪���牽�Ԗڂ���J�n����̂����C���f�b�N�X��indexNumber�Ɏ����܂��B�Ȃ��A�K�v���A�N�Z�b�T���\�b�h�̂ݗp�ӂ��Ă����܂��B���ۂ̃v���O�����͎��̂悤�ɂȂ�܂��B

}2@TokenNX}i\bĥ݁j �}2�@Token�N���X�}�i���\�b�h�̂݁j
public class Token {
    private int type;
    private String s;
    private double n;
    private int lineNumber;
    private int indexNumber;
    public Token(int t, char c) {
        type = t; this.s = Character.toString(c);
    }
    public Token(int t, String s) { type = t; this.s = s; }
    public Token(int t, double n) { type = t; this.n = n; }
    public int getType() { return type; }
    public String getS() { return s; }
    public double getN() { return n; }
    public void setLineNumber(int n) { lineNumber = n; }
    public void setIndexNumber(int n) { indexNumber = n; }
    public int getLineNumber() { return lineNumber; }
    public int getIndexNumber() { return indexNumber; }
}
Token.java

TokenUtil�N���X���`����

�@����Token�N���X���g�p����ɓ������ẮA���̂悤��TokenUtil�N���X��p�ӂ��邱�Ƃɂ��܂��B���l�Ȃ̂��A�\���Ȃ̂��A�Ƃ������^�C�v�ɂ‚��ẮA���̃N���X�Ő錾���Ă����܂��B�ΏۋL����\���𑝂₷�ꍇ�ɂ́A���̃N���X�ɕύX�����邱�Ƃ������ƍl�������߂ł����A���̂�����̔��f�́A�����n���݌v���j��D�݂ɂ���ĕς���Ă��܂��B

}3@TokenUtilNX}i\bĥ݁j �}3�@TokenUtil�N���X�}�i���\�b�h�̂݁j
�i���j
public class TokenUtil {
    public static final int NUMBER = 1;
    public static final int OPE_AS = 2; // + -
    public static final int OPE_MD = 3; // * /
    public static final int L_PAREN = 4; // (
�i���j
    public static final int KEYWORD = 8; // �\���
    public static final int IDENTIFIER = 9; // ���ʎq
    private static final String[] symbolsArray = {
        "+", "-", "*", "/", "(", ")", "{", "}",
    };
�i���j
    public static final List<String> symbols
        = Arrays.asList(symbolsArray);
    public static boolean isSymbols(String s) {
        return symbols.contains(s);
    }
�i���j
    public static String toPrintFormat(Token t) {
        StringBuilder sb = new StringBuilder();
        sb.append("\tline :" + t.getLineNumber() + "\n");
�i���j
    }
    return sb.toString();
} 
TokenUtil.java�i�����j

�@�Ȃ��A����̐݌v�ł����ʎq�ɂ‚��Ă͍l���Ă��܂���ł������A�����͏����ł͂悭�o�Ă���͂��Ȃ̂ŁA����Ă���܂��B�v���O�����̔����ɂ͏����Ă���܂��񂪁A�\���̔���p�ɁAList<String>�^��keywords��p�ӂ��Ă���܂��B�܂��A������g���ċL������p��symbols�Ɠ��l�ȏ����Ŕ��肷�郁�\�b�hisKeywords���������Ă��܂��BtoPrintFormat���\�b�h�́AToken�N���X���I�u�W�F�N�g�����f�B�X�v���C�֕\�����镶������쐬������̂ł��B

�@�@�@�@�@�@ 1|2|3 ���̃y�[�W��

Copyright © ITmedia, Inc. All Rights Reserved.

'; this.insertTarget = document.querySelector('#cmsBody .subscription') || document.querySelector('#cmsBody .inner'); }; BodyAdIMSWithCCE.prototype = Object.create(BodyAdContent.prototype); BodyAdIMSWithCCE.prototype.activate = function () { refreshGam('InArtSpecialLink'); } // global reference window.itm = itm; //entry point BodyAdEventBase.polyfill(); const bodyAdManager = BodyAdManager.getInstance(); bodyAdManager.addEventListener(BodyAdManager.EVENTS.READY, function (ev) { bodyAdManager.loadAdvertise(); }); bodyAdManager.init(); })();
�X�|���T�[����̂��m�点PR

���ڂ̃e�[�}

Microsoft  WindowsőO2025
AI for GWjAO
[R[h^m[R[h Zg by IT - ITGWjArWlX̒SŊ􂷂gD
Cloud Native Central by IT - XP[uȔ\͂gD
�V�X�e���J���m�E�n�E �y�����i�r�zPR
���Ȃ��ɂ������߂̋L��PR

RSS�ɂ‚���

�A�C�e�B���f�B�AID�ɂ‚���

���[���}�K�W���o�^

��IT�̃��[���}�K�W���́A �������A���ׂĖ����ł��B���Ѓ��[���}�K�W�������w�ǂ��������B