In this tutorial we're going to build a set of parser combinators.
We'll answer the above question in 2 steps.
- What is a parser?
- and, what is a parser combinator?
So first question: What is parser?
<?php | |
// Before: composer require monolog/monolog | |
// composer autoloader | |
require_once 'vendor/autoload.php'; | |
// Shortcuts for simpler usage | |
use \Monolog\Logger; | |
use \Monolog\Formatter\LineFormatter; | |
use \Monolog\Handler\StreamHandler; |
#!/bin/bash | |
interface=lo | |
ip=10.0.0.1 | |
delay=100ms | |
tc qdisc add dev $interface root handle 1: prio | |
tc filter add dev $interface parent 1:0 protocol ip prio 1 u32 match ip dst $ip flowid 2:1 | |
tc qdisc add dev $interface parent 1:1 handle 2: netem delay $delay |
#!/usr/bin/env python | |
import argparse | |
import collections | |
import sys | |
def train_hmm(filename): | |
""" Trains a Hidden Markov Model with data from a text file. Returns a markov | |
dictionary (see `markov_dict`) and a dictionary of emission probabilities. |
#![feature(phase)] | |
#[phase(plugin, link)] extern crate log; | |
extern crate green; | |
extern crate rustuv; | |
use std::io; | |
use std::os; | |
use std::io::{Listener,Acceptor,TcpStream}; | |
#[start] |
// Get The Page ID You Need | |
get_option( 'woocommerce_shop_page_id' ); | |
get_option( 'woocommerce_cart_page_id' ); | |
get_option( 'woocommerce_checkout_page_id' ); | |
get_option( 'woocommerce_pay_page_id' ); | |
get_option( 'woocommerce_thanks_page_id' ); | |
get_option( 'woocommerce_myaccount_page_id' ); | |
get_option( 'woocommerce_edit_address_page_id' ); | |
get_option( 'woocommerce_view_order_page_id' ); | |
get_option( 'woocommerce_terms_page_id' ); |
Once upon a midnight dreary, while I pondered, weak and weary, | |
Over many a quaint and curious volume of forgotten lore— | |
While I nodded, nearly napping, suddenly there came a tapping, | |
As of some one gently rapping—rapping at my chamber door. | |
"'Tis some visitor," I muttered, "tapping at my chamber door— | |
Only this and nothing more." | |
Ah, distinctly I remember, it was in the bleak December, | |
And each separate dying ember wrought its ghost upon the floor. | |
Eagerly I wished the morrow;—vainly I had sought to borrow | |
From my books surcease of sorrow—sorrow for the lost Lenore— |
I have managed to install this… and make it work. I implemented it for Facebook and Google, but you can extend it. My solution it is mostly as described in #116, with a bit of more code presented. The key aspects that lack in the #116 presentation (IMO) are:
oauth_user_provider
in the security.yml
with your custom created serviceHere are the steps:
routing.yml
I have added all the routes for both bundles.config.yml
mostly as it is presented in the HWIOAuthBundle.security.yml
mostly as it is presented in the HWIOAuthBundle (though my routes are using /login
pattern, not /connect
). Also, the oauth_user_provider
is set for my custom service.<?php | |
namespace Assetic\Filter; | |
use Assetic\Asset\AssetInterface; | |
use Assetic\Util\ProcessBuilder; | |
/** | |
* Runs assets through gzip. | |
*/ |