Skip to content

Instantly share code, notes, and snippets.

View KvanTTT's full-sized avatar

Ivan Kochurkin KvanTTT

View GitHub Profile
@KvanTTT
KvanTTT / Kochurkins.cmd
Created September 12, 2018 21:00
Script for generating genealogy tree inside Git repository
chcp 65001
mkdir Kochurkins
cd Kochurkins
git init
git checkout --orphan @I36@
git commit -m "Татьяна : Birth F" --date "01/01/1970 00:00:00" --author "Татьяна <>" --allow-empty
git checkout --orphan @I35@
git commit -m "Степан Голобоков : Birth M" --date "01/01/1970 00:00:00" --author "Степан Голобоков <>" --allow-empty
git checkout --orphan @I33@
@KvanTTT
KvanTTT / remarks.md
Created February 25, 2018 20:28
seva-calculator

Функциональность

  • Некорректная обработка чисел больше размерности int. Например, 9999999999999999999=-1981284353.
  • IndexOutOfRangeException в случае пустого ввода и в случае если оператор умножения или сложения находятся в начале: +2, *2.
  • Программа не покрыта тестами.
  • Дублирование логики в switch - case. Символьный тип элементарно перевести в число, а блок с проверкой от '0' до '9' заменяется одной строчкой. То же самое относится к операторам '*' и '+'.
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Windows;
using System.Windows.Controls;
using System.Windows.Data;
using System.Windows.Documents;
using System.Windows.Input;
using System.Windows.Media;
@KvanTTT
KvanTTT / Expression.cs
Created September 12, 2017 09:02
Parser that can add and sum integer numbers
using System.Collections.Generic;
using static System.Console;
namespace Expressions
{
public enum Operation
{
Add,
Mult,
Int
@KvanTTT
KvanTTT / ProgrammerCoffe.cs
Created June 22, 2017 14:09
The task about programmar and coffe breaks
using System;
using static System.Console;
namespace ProgrammerCoffe
{
class Program
{
static void Main(string[] args)
{
do
@KvanTTT
KvanTTT / Long-Sentence.md
Last active May 29, 2017 13:56
Длинное предложение, разбитое на несколько строк

Привет всем! Это пример длинного предложения, которое, тем не менее, разбито на несколько строк, чтобы diff был более удобным (для тех, кто пользуется GitHub для написания статей), а в текстовых редакторах не нужно было бы постоянно включать опцию "переносить по словам" или подобную, чтобы длинные строки всегда помещались в окно.

А это уже новое предложение, которое находится в следующем абзаце. Для этого нужно использовать два разрыва строки. Также стоит обратить внимание на то, что если между строками есть только

@KvanTTT
KvanTTT / CSharp6FeaturiesWalker.cs
Last active July 7, 2017 20:05
Walker for detection C# 6 syntax features
public class CSharp6FeaturiesWalker : CSharpSyntaxWalker
{
public bool CSharp6Featuries { get; private set; }
public CSharp6FeatureWalker()
{
}
public override void VisitPropertyDeclaration(PropertyDeclarationSyntax node)
{
@KvanTTT
KvanTTT / CSharpAntlrParser.cs
Last active May 13, 2021 18:31
ANTLR C# runtime code fragment for correct C# code parsing with preprocessor directives (for CSharp grammar in oficial repository: https://github.com/antlr/grammars-v4/tree/master/csharp).
List<IToken> codeTokens = new List<IToken>();
List<IToken> commentTokens = new List<IToken>();
Lexer preprocessorLexer = new CSharpLexer(new AntlrInputStream(sourceCode));
// Collect all tokens with lexer (CSharpLexer.g4).
var tokens = preprocessorLexer.GetAllTokens();
var directiveTokens = new List<IToken>();
var directiveTokenSource = new ListTokenSource(directiveTokens);
var directiveTokenStream = new CommonTokenStream(directiveTokenSource, CSharpLexer.DIRECTIVE);
CSharpPreprocessorParser preprocessorParser = new CSharpPreprocessorParser(directiveTokenStream);
using static System.Console;
using static System.Math;
using static System.DayOfWeek;
using static System.Linq.Enumerable;
namespace CSharp6Samples
{
public class Test
{
// Initializers for auto-properties
@KvanTTT
KvanTTT / ManyStringConcatenation.java
Created October 20, 2015 17:07
ANTLR Java7.g4 very slow performance sample (~15 sec Java.g4 versus ~0.15 sec Java8.g4 even with two-stage parsing strategy).
class Test
{
@ApiModelProperty(value =
"0123456789012345678901234567890123456789" +
"0123456789012345678901234567890123456789" +
"0123456789012345678901234567890123456789" +
"0123456789012345678901234567890123456789" +
"0123456789012345678901234567890123456789" +
"0123456789012345678901234567890123456789" +
"0123456789012345678901234567890123456789" +