저는 OCaml을 아직 처음 접했고 작은 언어 용 스캐너, 구문 분석기 및 추상 구문 트리 (예쁜 프린터 사용)를 작성했습니다. 내 AST는 잘 컴파일하는 데 사용되었지만 이제는 구문 오류가 발생하여 이유를 파악할 수 없습니다. 여기 내가 오류를 얻을 경우 코드의 일부입니다 1 type op = Add | Sub | Mult | Div | Equal | N
샘플 코드에서 Clang의 ASTVisitor를 구문 분석하는 동안 구문을 검증하는 구문이 있음을 알 수 있습니다. isa<IfStmt>(statement)
isa<UnaryOperator>(Expression)
현재 표현식/문을 평가하는 데 사용되는 구문의 포괄적 인 목록이 있습니까? 감사 모든
파이썬의 ast 모듈을 사용하여 클래스 상속 트리를 표시하고 있습니다. ast.NodeVisitor에 대해 visit_ClassDef(self, node) 함수를 정의하고 node.bases을 반복합니다. 그러나 기본 클래스의 이름을 문자열로 가져올 수 없었습니다. 지금까지 base.value과 base.name을 시도했지만 아무 소용이 없습니다. >>>
Eclipse에서 개발하는 동안 JDT가 클라이언트에 반환하는 방식이 어쨌든 일반적으로 AST에 얼마나 일반적입니까? 그리고 어떤면에서 때때로 깨지십니까? 수입이 누락 된 것과 같은 명백한 현상을 상상할 수 있지만 코드가 컴파일되는 경우도 있지만 JDT-AST가 여전히 손상되었거나이 AST가 실제 컴파일러에 대한 입력입니까?
저는 AST 조작으로 놀고 있습니다. 현재 입력 AST에서 특정 노드를 제거하려고합니다. NodeTransformer 클래스는이 목적을위한 적절한 툴이라고 생각합니다. 슬프게도 예상대로 동작하지 않습니다. documetation는 말한다 : 는 "NodeTransformer는 AST를 걸어 교체하거나 이전 노드를 제거하는 방문자 방법의 반환 값을 사용하는
나는 Spidermonkey Parser에 매우 익숙하며 두 가지 질문이 있습니다. 첫 번째는 spidermonkeyParser를 사용하여 Javascript 파일의 AST를 생성하는 방법에 대한 좋은 문서 (초보자 용)입니다. 두 번째 방법은 대서양 표준시를 통과하는 법을 알아야합니다. 내 목표는 AST의 정보를 사용하여 JS 파일의 정적 분석 (유형 분
의 동일한 수를 반환 나는 다음과 같은 규칙이 있습니다 ( OPT1이 정의되거나되지 않은 경우)에 따라 하나 또는 두 아이를 가질 것이 규칙에 의해 생성 statement : TOKEN1 opt1=TOKEN2? opt2=TOKEN3 TOKEN4 -> ^(TOKEN1 opt1? opt2);
대서양 표준시를. 항상 고정 된 수의 아동 (이 경우 2)이 필요
다른 문법에 의해 생성되고 소비 된 AST를 변환 할 ANTLRv3 문법이 있습니다. 는 그것의 한 부분이 실제 목록 표현으로 M:N (즉 1:5) 같이 정의 범위를 다시 작성하는 것입니다 -. M, M+1, ..., N (즉 1, 2, 3, 4, 5) 따라서, 노드 ^(RANGE s=INT e=INT)는 INT 토큰의리스트로 변환됩니다 . range
내가 b.a := 7;
내 문법과 같은 문을 구문 분석 문법을 쓰기 위해 노력하고 있어요 그것은 내가 을 구문 분석하려고 할 때 잘 작동 public class STGrammar : InterpretedLanguageGrammar
{
public STGrammar() : base(caseSensitive: false)
{
Eclipse는 PHP, JavaScript 및 JAVA 코드에서 AST 트리를 작성하는 데 아주 좋은 aproach를 제공합니다. 해당 요소의 위치를받는 언어의 각 요소 + 코드의 유효성을 검사하고 구문 오류 위치를 가질 수 있습니다. HTML과 CSS는 비슷하지만 성공하지 못한 API를 찾으려고했습니다. 이클립스가 강조 표시하고 코드가 해당 언어를 지원