Skip to content

Instantly share code, notes, and snippets.

VladD2 VladD2

Block or report user

Report or block VladD2

Hide content and notifications from this user.

Learn more about blocking users

Contact Support about this user’s behavior.

Learn more about reporting abuse

Report abuse
View GitHub Profile
View ысщзуыют
namespace A // создает локальный символ простанства имен для текущей ДЛЛ
{
module B // создает локальный символ модуля для текущей ДЛЛ
{
Main() : void // создает локальный символ метода для текущей ДЛЛ
{
// порождает АСТ в котором возможен биндинг
Foo(); // вызов Foo из нэйспэйса A объявленного в другой сборке.
}
}
View PM-by-classes.n
using System.Console;
[Record] class A { public Foo : B { get; } }
[Record] class B { public Bar : int { get; } }
module Program
{
Main() : void
{
def obj1 : object = A(B(42));
View infer-from-usage.n
using System.Console;
using System.Collections.Generic;
def dic = Dictionary();
dic.Add("aaa", 123);
WriteLine(dic["aaa"]);
WriteLine(dic[42]); // error: dic has Dictionary[string, int] type
View gist:e7f25b72b33cd216e1b5b8dc59b634ab
// Nitra.Ast.TopAst
public override void EvalProperties(DependentPropertyEvalContext context)
{
if ((this._N_bitField_51532 & 32) == 0)
{
if (context.Stage >= 1)
{
if (this.IsOpeningInEvaluated)
{
this.OpeningOut = this.OpeningIn;
View gist:369758b8caa35f29f5dddd193ef683c3
------ Build started: Project: DotNetLang, Configuration: Debug Any CPU ------
"C:\!\Nitra\.nuget\NuGet.exe" install "C:\!\Nitra\Nitra\DotNetLang\packages.config" -source "" -NonInteractive -RequireConsent -solutionDir "C:\!\Nitra\ "
Restoring NuGet packages...
To prevent NuGet from downloading packages during build, open the Visual Studio Options dialog, click on the Package Manager node and uncheck 'Allow NuGet to download missing packages'.
All packages listed in packages.config are already installed.
C:\Program Files (x86)\Nemerle\\Net-4.0\ncc.exe
/no-color
/no-stdlib
/greedy-references:-
/define:TRACE;DEBUG_EVAL_DEPENDENT_PROPERTIES;DEBUG
View TODO:QualifiedReference.Aliased
Надо реализовать QualifiedReference.Aliased (сейчас там заглушечный код).
Нужно создать список глобальных псевдонимов.
Псевдонимы должны задаваться из свойств проекта или командной строки компилятора.
Каждый псевдоним может быть ассоциирован с одним деревом символов одной или более библиотеки (сборки).
Scope псевдонима должен содержать список корней деревьев символов для каждой сборки.
Предопределенный псевдоним global должен быть ассоциирован с корнем дерева символов проекта.
Для того чтобы сделать это, предварительно, нужно сделать отдельные иерархии символов для каждого проекта/сборки.
А дерево символов каждого проекта надо сделать сборным из деревьев подключенных к нему проектов/сборок.
View gist:d1a33cc182ef85ee9cfa0774cd0539c3
using System;
using System.Collections.Generic;
using System.Data;
using System.Data.Entity;
using System.Linq;
using System.Net;
using System.Web;
using System.Web.Mvc;
using BlackHoles.DataContexts;
using BlackHoles.Entities;
View gist:8cf390d3417b887ceab5216981feb3e4
using System.Console;
using Nemerle.Imperative.GoTo; // It need for 'goto' and 'label' macros.
struct S
{
public mutable X : int;
public mutable Y : int;
}
module Program
View gist:1f4ff69dfd96f36e4fbcf8ebf50c87bb
using System.Console;
struct S
{
public mutable X : int;
public mutable Y : int;
}
module Program
{
View gist:80341baa5da6b2256fc9
syntax Node = Key=Reference sm NodeContent;
syntax NodeContent = "{" outline_begin_before inl NodeMembers nl d outline_end "}";
syntax NodeMember
{
| Attribute = Key=Reference sm ":" sm Value
| Node = Node
}
syntax Value
{
You can’t perform that action at this time.