라이브러리

[PHP] ParleParser::precedence - 우선순위 규칙 선언




ParleParser::precedence란 무엇인가?

ParleParser는 PHP의 파서 라이브러리로, 문법을 분석하고 파싱하는 데 사용됩니다. ParleParser::precedence는 우선순위(Precedence)라는 개념을 다룹니다. 우선순위는 연산자나 문법 요소의 순서를 결정하는 데 사용됩니다.

우선순위란 무엇인가?

우선순위는 연산자나 문법 요소의 순서를 결정하는 데 사용됩니다. 예를 들어, `a + b * c`와 같은 식에서, `*` 연산자는 `+` 연산자보다 우선순위가 높습니다. 따라서 `b * c`가 먼저 계산되고, 그 결과를 `a +` 에서 계산합니다.

ParleParser::precedence 예제

다음은 ParleParser::precedence를 사용하는 예제입니다.
#hostingforum.kr
php

use ParleParserParser;



// 예제 문법

$grammar = [

    'expression' => [

        ['term', '+', 'expression'],

        ['term', '-', 'expression'],

        'term',

    ],

    'term' => [

        ['factor', '*', 'term'],

        ['factor', '/', 'term'],

        'factor',

    ],

    'factor' => [

        ['number'],

        ['variable'],

    ],

];



// 파서 생성

$parser = new Parser($grammar);



// 예제 입력

$input = 'a + b * c';



// 파싱

$tree = $parser->parse($input);



// 우선순위 출력

$precedence = $parser->getPrecedence();

print_r($precedence);


이 예제에서는 `expression` 문법이 `+`와 `-` 연산자를 사용하여 `term`를 연결하는 것을示합니다. `term` 문법은 `*`와 `/` 연산자를 사용하여 `factor`를 연결하는 것을示합니다. `factor` 문법은 `number`와 `variable`를 지원합니다.

`getPrecedence()` 메서드는 파서가 생성한 우선순위를 반환합니다. 이 예제에서는 `expression` 문법의 우선순위를 출력합니다.

결과

출력 결과는 다음과 같습니다.
#hostingforum.kr
php

Array

(

    [0] => Array

        (

            [operator] => +

            [precedence] => 1

        )



    [1] => Array

        (

            [operator] => -

            [precedence] => 1

        )



    [2] => Array

        (

            [operator] => *

            [precedence] => 2

        )



    [3] => Array

        (

            [operator] => /

            [precedence] => 2

        )



)


이 결과에서, `+`와 `-` 연산자는 같은 우선순위를 가지고 있으며, `*`와 `/` 연산자는 다른 우선순위를 가지고 있습니다.

결론

ParleParser::precedence는 우선순위를 다루는 데 사용되는 파서 라이브러리입니다. 우선순위는 연산자나 문법 요소의 순서를 결정하는 데 사용됩니다. 예제를 통해 우선순위를 다루는 방법을 살펴보았습니다.
  • profile_image
    나우호스팅 @pcs8404 

    호스팅포럼 화이팅!

    댓글목록

    등록된 댓글이 없습니다.

  • 전체 10,077건 / 343 페이지

검색

게시물 검색