Poznámka:
Přístup k této stránce vyžaduje autorizaci. Můžete se zkusit přihlásit nebo změnit adresáře.
Přístup k této stránce vyžaduje autorizaci. Můžete zkusit změnit adresáře.
Kompilátory zpracovávají kód, který píšete podle strukturovaných pravidel, která se často liší od toho, jak lidé čtou a rozumí kódu. Základní znalosti modelu používaného kompilátory jsou nezbytné k pochopení rozhraní API, která používáte při vytváření nástrojů založených na Roslynu.
Funkční oblasti kanálu kompilátoru
Sada .NET Compiler Platform SDK zveřejňuje analýzu kódu kompilátoru jazyka C# a Visual Basic pro vás jako příjemce tím, že poskytuje vrstvu rozhraní API, která zrcadlí tradiční kanál kompilátoru.
Každá fáze tohoto kanálu je samostatná komponenta. Nejprve fáze analýzy tokenizuje a parsuje zdrojový text do syntaxe, která následuje za gramatikou jazyka. Za druhé fáze deklarace analyzuje zdrojová a importovaná metadata a vytvoří pojmenované symboly. Následně proces vazby spojuje identifikátory v kódu se symboly. Nakonec fáze generování generuje sestavení se všemi informacemi vytvořenými kompilátorem.
Sada .NET Compiler Platform SDK, která odpovídá každé z těchto fází, zveřejňuje objektový model, který umožňuje přístup k informacím v této fázi. Fáze analýzy zveřejňuje strom syntaxe, fáze deklarace zveřejňuje hierarchickou tabulku symbolů, fáze vazby zveřejňuje výsledek sémantické analýzy kompilátoru a fáze generování je rozhraní API, které vytváří kódy bajtů IL.
Každý kompilátor kombinuje tyto komponenty dohromady jako jeden ucelený celek.
Tato rozhraní API jsou stejná jako ta, která používá Visual Studio. Například funkce osnovy a formátování kódu používají stromy syntaxe, Prohlížeč objektů a navigační funkce používají tabulku symbolů, refaktoringy a Přejít k definici používají sémantický model a funkce Upravit a Pokračovat používají všechny tyto funkce, včetně rozhraní API pro generování.
Vrstvy rozhraní API
Sada SDK kompilátoru .NET se skládá z několika vrstev rozhraní API: rozhraní API kompilátoru, diagnostická rozhraní API, skriptovací rozhraní API a rozhraní API pracovních prostorů.
Rozhraní API kompilátoru
Vrstva kompilátoru obsahuje objektové modely, které odpovídají informacím vystaveným v každé fázi kanálu kompilátoru, a to jak syntaktické, tak sémantické. Vrstva kompilátoru také obsahuje neměnný snímek jednoho vyvolání kompilátoru, včetně odkazů na sestavení, možností kompilátoru a souborů zdrojového kódu. Existují dvě odlišná rozhraní API, která představují jazyk C# a jazyk Visual Basic. Tato dvě rozhraní API jsou podobná tvaru, ale jsou přizpůsobená pro vysokou věrnost jednotlivým jazykům. Tato vrstva nemá žádné závislosti na komponentách sady Visual Studio.
Diagnostická rozhraní API
V rámci analýzy může kompilátor vytvořit sadu diagnostiky, která pokrývá vše od syntaxe, sémantické a konkrétní chyby přiřazení k různým upozorněním a informační diagnostice. Vrstva rozhraní API kompilátoru zveřejňuje diagnostiku prostřednictvím rozšiřitelného rozhraní API, které umožňuje připojení uživatelsky definovaných analyzátorů k procesu kompilace. Umožňuje vytváření diagnostiky definované uživatelem, jako jsou nástroje, jako je StyleCop, společně s diagnostikou definovanou kompilátorem. Vytváření diagnostiky tímto způsobem má výhodu přirozené integrace s nástroji, jako jsou MSBuild a Visual Studio, které se spoléhají na diagnostiku k zajištění funkcionalit, jako je zastavení sestavení podle zásad, zobrazení živých vlnovek v editoru a navrhování oprav kódu.
Skriptovací rozhraní API
Rozhraní API pro hostování a skriptování jsou postavená na vrstvě kompilátoru. Pomocí skriptovacích rozhraní API můžete spouštět fragmenty kódu a shromažďovat kontext spuštění modulu runtime. Interaktivní REPL (Read-Evaluate-Print Loop) jazyka C# používá tato rozhraní API. RePL umožňuje používat jazyk C# jako skriptovací jazyk a interaktivně spouštět kód při psaní.
Rozhraní API pracovních prostorů
Vrstva Pracovní prostory obsahuje rozhraní API pracovního prostoru, což je výchozí bod pro analýzu kódu a refaktoring pro celá řešení. Pomůže vám uspořádat všechny informace o projektech v řešení do jediného objektového modelu a nabízí přímý přístup k modelům objektů vrstvy kompilátoru, aniž byste museli analyzovat soubory, konfigurovat možnosti nebo spravovat závislosti mezi projekty.
Kromě toho vrstva Pracovních prostorů zobrazí sadu rozhraní API používaná při implementaci nástrojů pro analýzu kódu a refaktoringu, které fungují v hostitelském prostředí, jako je integrované vývojové prostředí sady Visual Studio. Mezi příklady patří rozhraní API pro vyhledání všech odkazů, formátování a generování kódu.
Tato vrstva nemá žádné závislosti na komponentách sady Visual Studio.