- 01
- 02
- 03
- 04
- 05
- 06
- 07
- 08
- 09
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 23
- 24
- 25
- 26
- 27
- 28
- 29
- 30
- 31
- 32
- 33
- 34
- 35
- 36
- 37
- 38
- 39
- 40
- 41
- 42
- 43
- 44
- 45
- 46
- 47
public bool IsNormal() {
return Type == TypeOfWord.Normal;
}
public bool IsNumber() {
return Type == TypeOfWord.Number;
}
public bool IsOperator() {
return Type == TypeOfWord.Operator;
}
public bool IsBracket() {
return Type == TypeOfWord.Bracket;
}
public bool IsSymbol() {
return IsOperator() || IsBracket();
}
public bool IsSpace() {
return Type == TypeOfWord.Space;
}
public bool IsComment() {
return Type == TypeOfWord.Comment;
}
public bool IsExcess() {
return IsComment() || IsSpace();
}
public bool IsQuotedText() {
return Type == TypeOfWord.QuotedText;
}
public bool IsQuotedChar() {
return Type == TypeOfWord.QuotedChar;
}
public bool IsQuotedTextOrChar() {
return IsQuotedText() || IsQuotedChar();
}
public bool IsUnknown() {
return Type == TypeOfWord.Unknown;
}
guestinho 13.06.2016 22:31 # +1
gost 13.06.2016 23:09 # +2
guest 14.06.2016 01:06 # +1
bot 14.06.2016 01:30 # +1
kegdan 14.06.2016 05:29 # +1
Просто премию Тьюринга этому человеку за лучшее имя переменной
LispGovno 14.06.2016 11:09 # +2
Енум небось
Fike 14.06.2016 10:36 # +6
ты нормальный вообще?
roman-kashitsyn 14.06.2016 10:43 # +1
Что-то вроде этого в лексере clang видел. А так ничего страшного.
bormand 14.06.2016 10:44 # 0
params - это вариадик аргументы?
LispGovno 14.06.2016 11:11 # 0
kegdan 14.06.2016 10:57 # 0
bormand 14.06.2016 11:02 # 0
kegdan 14.06.2016 11:04 # 0
bormand 14.06.2016 11:06 # +1
3.14159265 14.06.2016 21:15 # 0
Берём plain old C
enum{
Number=1
,Operator=2
,Bracket=4
,Space=8
} TypeOfWord
auto isOneOf(types,type) {
return types &type ;
}
isOneOf(Number & Operator, myType)
3.14159265 14.06.2016 21:21 # 0
>isOneOf(Number | Operator, myType)
ШОК: код стал короче и читабельнее.
bormand 14.06.2016 11:07 # 0
kegdan 14.06.2016 11:11 # 0
a => b => a + b
LispGovno 14.06.2016 11:12 # +1
kegdan 14.06.2016 11:13 # 0
LispGovno 14.06.2016 11:17 # +2
kegdan 14.06.2016 11:29 # 0
1024-- 14.06.2016 14:21 # 0
roman-kashitsyn 14.06.2016 14:46 # 0
Нет, там нет таких унылых динамикопроблем.
kegdan 14.06.2016 19:20 # +1
Что это за блядство?
1024-- 15.06.2016 07:48 # +1
2. parseInt принимает не только строку, но и основание
Числа преобразуются в строку, а потом парсятся с системой счисления, равной индексу в массиве: 0, 1, 2, 3, 4, 5.
bormand 15.06.2016 07:51 # 0
1024-- 15.06.2016 08:20 # +3
TarasB 15.06.2016 10:38 # +6
bormand 15.06.2016 10:47 # +1
kegdan 15.06.2016 10:47 # +1
3_14dar 15.06.2016 17:49 # 0
Лишние параметры тупо отбрасываются?
bormand 15.06.2016 17:57 # +2
3_14dar 15.06.2016 18:10 # +2
3_14dar 14.06.2016 19:46 # 0
ЧЯДНТ?
3_14dar 14.06.2016 22:03 # 0
Это как?
1024-- 15.06.2016 07:51 # 0
Только в случае parseInt числа в строку переводятся перед парсингом.
roman-kashitsyn 14.06.2016 11:32 # 0
> types.Any(type.Is)
Господа, а кто такой type и откуда он взялся?
bormand 14.06.2016 11:36 # 0
roman-kashitsyn 14.06.2016 11:38 # +4
kegdan 16.06.2016 05:15 # 0
3.14159265 14.06.2016 21:01 # 0
> foreach (var type in types) {
> return types.Any(type => Is(type));
По треду O(N) решения. Эээх.
А если это енум, а это обязан был енум. Так вот если это енум (сиподобный) можно битовую масочку сделать.
А в жабе из каробки enumset внутри себя так и работает.
bormand 14.06.2016 21:03 # 0
Для N=2
3.14159265 14.06.2016 21:14 # 0
Во-2, даже при N=2 можно избавиться от бранчинга и перепитушни цикла, а также создания массива и "всего-лишь" в 2 раза ускорить код.
bormand 14.06.2016 21:22 # 0
3.14159265 14.06.2016 21:23 # 0
См. п. 2
bormand 14.06.2016 21:26 # 0
А в шарпе он же как сишный, всё вручную нумеровать (либо юзать дефолт и надеяться, что никто не будет нумеровать, а маски юзать со сдвигом)... Неидиоматично как-то получается.
3.14159265 14.06.2016 21:28 # 0
Ну сдвиги есть. Думаю можно метод нацепить
int mask(){ return 1<<ordinal();}
В жабе вот что очень няшное:
http://grepcode.com/file/repository.grepcode.com/java/root/jdk/openjdk/6-b14/java/util/RegularEnumSet.java#RegularEnumSet
bormand 14.06.2016 21:28 # 0
3.14159265 14.06.2016 21:30 # 0
This API supports the product infrastructure and is not intended to be used directly from your code.
Не, там реально какая-то дрочь. 3.5 метода. Жабовский реально удобно, для людей сделан.
bormand 14.06.2016 21:32 # 0
bormand 14.06.2016 21:31 # 0